我的素数函数被打破但我不知道为什么

时间:2015-02-28 15:59:21

标签: javascript html web

以下是我做的一个小函数,它应该列出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>.

3 个答案:

答案 0 :(得分:0)

这是工作代码:

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

答案 1 :(得分:0)

 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数组转换为字符串; 但是你的algorythm stil不正确,每当noomber%i!= 0时,你都会为数组添加数字

答案 2 :(得分:-1)

这是正确的功能:

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;

}