[英]Javascript code to find prime numbers doesn't work
我運行此功能,該功能是通過按鈕觸發的,它應該打印質數。 而是打印了所有檢查過的數字。 用戶應該輸入一個數字(例如100),所有低於該數字的數字將被檢查是否為質數,如果為質數,則將被打印。(i是正在檢查的數字)
function findeprime(num) {
for (i = 2; i < num; i++) {
for (coun = 2; coun < i; coun++) {
if (i % coun == 0) continue;
}
document.write(i + " is prime <br/>");
}
}
我究竟做錯了什么???
您的continue
只是打破內循環。 我推薦這樣的東西
function findeprime(num) {
var isPrime;
for (var i = 2; i < num; i++) {
isPrime = true;
for (coun = 2; coun < i; coun++) {
if (i % coun == 0) isPrime = false;
}
if (isPrime) document.write(i + " is prime <br/>");
}
}
您的繼續聲明似乎放錯了位置。 它影響內部循環,而您的代碼只有影響外部循環才能正常工作。
由於您無法讓continue語句影響外部循環/塊,請嘗試以下操作:
function findeprime(num) { for (i = 2; i < num; i++) { var prime = true; for (coun = 2; coun < i; coun++) { if (i % coun == 0) { prime = false; break; } } if(prime) alert(i + " is prime"); } } findeprime(14);
顯然每個人都已經為您提供了答案,但是出於知識目的,我將再發布一個示例。
Number.prototype.isPrime = function() { for (var i = 2; i < this; i++) { if (this % i == 0) { return false; } } return true; }; function findPrimes(num) { var results = []; for (var i = 2; i <= num; i++) { if (i.isPrime()) results.push(i); } return results; } var primes = findPrimes(1000); document.write(primes.join(', '));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.