Ваше завдання, якщо ви вирішите прийняти це, - написати програму / функцію, яка приймає як вхід ціле число N. Програма / функція повинна виводити / повертати список перших N простих чисел. Але ось ось у чому: вам заборонено використовувати прості символи у своєму коді. Простий символ - це символ, кодовий код якого в Unicode є простим числом. У діапазоні для друку ASCII це:
%)+/5;=CGIOSYaegkmq
Але правило також застосовується до символів, що не належать до ASCII, якщо ваш код використовує ці.
- Дійсний вхід - це ціле число N, де 0 <N <= T , де можна вибрати T , але воно повинно бути більше або дорівнює 10000. T не повинно бути кінцевим.
- Для недійсних входів (не цілі числа, цілі числа поза діапазоном) киньте виняток або виведіть / поверніть нічого / null.
- Ціле число з пробілом проміжних / кінцевих пробілів як введення вважається недійсним.
- Ціле число з
+
символом як знак як вхід вважається недійсним. - Ціле число з провідними нулями як вхідним вважається дійсним.
- Якщо ваша мова дозволяє передавати вже проаналізоване ціле число як вхідне, вищезазначені правила розбору (крім діапазону першого) не застосовуються, оскільки int вже розібраний.
- Вхід завжди базовий-10.
- Використання вбудованих простих генераторів та тестерів первинності (сюди належать функції простих факторів) не дозволяється.
- Обмеження на джерело накладається на символи Unicode, але підрахунок байт для оцінки може бути в іншому кодуванні, якщо ви хочете.
- Вихід може містити один зворотний новий рядок, але це не потрібно.
- Якщо ви виводите / повертаєте список простих чисел у вигляді рядка, то кожне просте число повинно бути обмежене одним або кількома нецифровими знаками (символами). Ви можете вибрати роздільник, який ви використовуєте.
- Це виклик з гольфовим кодом, виграє найкоротший код у байтах.
Стек фрагмент, щоб підтвердити свій код
Ви можете скористатися наведеним нижче фрагментом стека, щоб переконатися, що ваш код не містить простих символів:
var primes=[],max=10000;for(var i=2;i<=max;i++){primes.push(i);}for(var N=2;N<Math.sqrt(max);N++){if(primes.indexOf(N)===-1){continue;}primes=primes.filter(function (x){return x===N||x%N!==0;});}function setText(elem,text){var z=('innerText' in elem)? 'innerText' : 'textContent';elem[z]=text;}function verify(inputCode,resultSpan){var invalidChars=[];var success=true;for(var i=0;i<inputCode.length;i++){var cc = inputCode.charCodeAt(i);if (cc>max){setText(resultSpan,"Uh oh! The char code was bigger than the max. prime number calculated by the snippet.");success = false;break;}if (primes.indexOf(cc)!==-1){invalidChars.push(inputCode[i]);}}if (invalidChars.length===0&&success){setText(resultSpan, "Valid code!");}else if(success) { var uniqueInvalidChars = invalidChars.filter(function (x, i, self){return self.indexOf(x)===i;});setText(resultSpan, "Invalid code! Invalid chars: " + uniqueInvalidChars.join("")); }}document.getElementById("verifyBtn").onclick=function(e){e=e||window.event;e.preventDefault();var code=document.getElementById("codeTxt").value;verify(code,document.getElementById("result"));};
Enter your code snippet here:<br /><textarea id="codeTxt" rows="5" cols="70"></textarea><br /><button id="verifyBtn">Verify</button><br /><span id="result"></span>
+
, потрібно видавати їх вручну розчаровуючим.
;
трапляється заборонено ...