我的代码中有什么错误?计算素数到n

时间:2015-02-04 14:37:53

标签: javascript for-loop primes

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停止计数(我们不再需要除以其他素数,我们知道它不是素数)。如果它没有除以小于它自身的任何素数,那么它是素数,因此它被添加到列表中。怎么了?

2 个答案:

答案 0 :(得分:0)

此行中缺少右括号:

if (quotient !== math.floor(quotient)) {

答案 1 :(得分:0)

if (quotient !== math.floor(quotient))额外)Math.floor,大写M