在不使用“素数字符”的情况下查找素数
您的任务(如果选择接受)是编写一个接受整数N作为输入的程序/函数。程序/功能应输出/返回前N个质数的列表。但是这里有个要点:不允许在代码中使用质数字符。素数字符是指其Unicode代码点是素数的字符。在可打印的ASCII范围内,这些是: %)+/5;=CGIOSYaegkmq 但是,如果您的代码使用非ASCII字符,则该规则也适用于非ASCII字符。 有效的输入是一个整数Ñ其中0 <N <= T,其中,可以选择Ť,但它必须大于或等于10000。Ť不必是有限的。 对于无效输入(非整数,超出范围的整数),抛出异常或输出/不返回任何结果/为空。 以前导/结尾空白为输入的整数被认为是无效的。 +以符号字符作为输入的整数被视为无效。 以前导零作为输入的整数被视为有效。 如果您的语言允许您传递已经解析的整数作为输入,则上述解析规则(范围1除外)将不适用,因为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. …