Sua tarefa, se você optar por aceitá-la, é escrever um programa / função que aceite um número inteiro N como entrada. O programa / função deve gerar / retornar uma lista dos primeiros N números primos. Mas aqui está o problema: você não tem permissão para usar caracteres primos no seu código. Um caractere primo é um caractere cujo ponto de código Unicode é um número primo. No intervalo de impressão ASCII, são eles:
%)+/5;=CGIOSYaegkmq
Mas a regra também se aplica a caracteres não ASCII se o seu código os usar.
- Uma entrada válida é um número inteiro N, onde 0 <N <= T , onde você pode escolher T , mas deve ser maior ou igual a 10000. T não precisa ser finito.
- Para entradas inválidas (não-inteiros, inteiros fora do intervalo), lance uma exceção ou produza / retorna nada / nulo.
- Um número inteiro com espaço em branco à esquerda / à esquerda como entrada é considerado inválido.
- Um número inteiro com um
+
caractere como sinal como entrada é considerado inválido. - Um número inteiro com zeros à esquerda como entrada é considerado válido.
- Se o seu idioma permitir que você passe um número inteiro já analisado como entrada, as regras de análise acima (exceto o intervalo um) não se aplicam, porque o int já foi analisado.
- A entrada é sempre a base 10.
- Não é permitido o uso de geradores primos e testadores de primalidade embutidos (isso inclui funções de fatoração primária).
- A restrição de origem é imposta aos caracteres Unicode, mas a contagem de bytes para a pontuação pode estar em outra codificação, se desejar.
- A saída pode conter uma única nova linha à direita, mas isso não é necessário.
- Se você produzir / retornar a lista de números primos como uma sequência, todos os números primos deverão ser delimitados por um ou vários caracteres não digitados. Você pode escolher qual delimitador você usa.
- Este é um desafio de código-golfe , o código mais curto em bytes vence.
Snippet de pilha para verificar seu código
Você pode usar o Snippet de pilha abaixo para verificar se seu código não contém caracteres principais:
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>
+
, parece decepcionante ser necessário descartá-las manualmente.
;
isso seja banido ... #