[英]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(',');
}
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.