簡體   English   中英

我的素數功能壞了,但我不知道為什么

[英]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++){
        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時,您每次都將數字添加到數組中

這是正確的功能:

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;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM