function primesuntil(n) {
var primes = [2];
for (i=3; i < n ; i++) {
var j=0;
while (j<primes.length) {
var quotient = i/primes[j];
if (quotient !== math.floor(quotient) {
var hasDivisor = false;
j++;
}
else {
var hasDivisor = true;
j=primes.length+15;
}
}
if (hasDivisor == false)
{primes.push(i);}
else
{var nothing = 3;}
}
printarray(primes);
}
我想在JavaScript中运行此代码,它应该打印小于n的所有素数,但由于某种原因它不会运行。我在某个地方犯了错误吗?当我评论此功能时,其余代码确实运行。 代码应该做的是划分数组中的所有数字&#34; primes&#34;,如果在某个时刻商数等于&#39; floor&#39;该数字(意味着它可以通过数组中的数字除),hasdivisor变为true,并且数字不会添加到素数数组中。此外,j停止计数(我们不再需要除以其他素数,我们知道它不是素数)。如果它没有除以小于它自身的任何素数,那么它是素数,因此它被添加到列表中。怎么了?
答案 0 :(得分:0)
此行中缺少右括号:
if (quotient !== math.floor(quotient)) {
答案 1 :(得分:0)
if (quotient !== math.floor(quotient))
额外)
,Math.floor
,大写M
。