我正在嘗試查找第10,001個質數。我已經看過人們編寫的其他代碼,但我不太明白它的意思。我用JavaScript編寫了一些代碼,我嘗試使用Eratosthenes的Sieve。我不確定問題是什麼。它看起來應該正常工作,但我得到了錯誤的答案。查找10001素數 - 歐拉項目
var compute = function() {
var prime = [2,3,5,7,11,13,17,19];
for(var i=20; i<=80000;i++) {
if(i%2!==0 && i%3!==0 && i%5!==0 && i%7!==0 && i%11!==0 && i%13!==0 && i%17!==0 && i%19!==0) {
prime.push(i);
}
}
console.log(prime[10000]);
};
compute();
31 * 37 = 1147,所以1147不是素數,但是您的條件會認爲它是素數。 – Passerby 2013-04-18 04:06:52
一個簡單的Google搜索:http://rosettacode.org/wiki/Sieve_of_Eratosthenes#JavaScript – jfriend00 2013-04-18 04:09:19
這可以通過僅檢查以1 3 7或9結尾的數字來優化,而不是按1遞增。 – Klik 2013-04-18 04:09:55