我的质数函数坏了,但我不知道为什么

My prime number function is broken but I don't know why

下面是我做的一个小函数,它应该列出 1 到 1001 之间的所有素数。它使用一个 for 循环来获取一个数字,然后另一个 for 循环来检查它是否是素数。一旦完成检查(如果它是素数),它就会将数字推送到一个数组中。这个数组应该在最后输出,但实际上没有。提前致谢。

<html>
<body>

<script>

function pNumList(){
    var primeNumbers = [];

    for(var noomber = 2; noomber<=1001; noomber++){
        for(var i = 2; i<noomber; i++){
            if(noomber%i==0){}else{


                primeNumbers.push(noomber);
            }
        }
    }
    pNumbersList.innerHTML = primeNumbers;
}

</script>

<p id="pNumbersList"></p>
<button  onclick="pNumList()" value = "Let's see em">Prime numbers list!</button>
<br>
<p>This might take a sec...</p>

</body>
</html>.

这是正确的函数:

function pNumList(){
var primeNumbers = [];

for(var noomber = 2; noomber<=1001; noomber++){
    for(var i = 2; i<noomber; i++){
        if(noomber%i==0){
        break;
        }else{


            primeNumbers.push(noomber);
break;
        }
    }
}
pNumbersList.innerHTML = primeNumbers;

}

这是工作代码:

function pNumList(){
    var primeNumbers = [];

    for(var noomber = 2; noomber<=1001; noomber++){
        var prime = true;
        for(var i = 2; i<noomber; i++){
            if(noomber%i==0){
                prime = false;
                break;
            }
        }
        if (prime) {
            primeNumbers.push(noomber);
        }
    }
    pNumbersList.innerHTML = primeNumbers.join(',');
}

JSFIDDLE

 function pNumList(){
var primeNumbers = [];

for(var noomber = 2; noomber<=1001; noomber++){
    for(var i = 2; i<noomber; i++){
        if(noomber%i==0){}else{


            primeNumbers.push(noomber);
        }
    }
}
pNumbersList.innerHTML = primeNumbers.toString();

您只需要使用 toString 将您的 js 数组转换为字符串; 但是你的算法仍然不正确,你每次在 noomber%i!=0

时向数组添加数字