我刚刚创建了一个运行一段时间的for循环的素数查找器。现在它在167899并且每秒都在增长。For Loop Max JavaScript
循环可以经过的循环的最大数量是多少?如果它是一个不敬虔的大数字,我不希望等待整晚,看看我能产生的最大质数是多少。
它是无限的吗?
这里是我的代码:
var isNotPrime = false;
var currentNumber = 3;
var primeArray = [2];
function prime(){
isNotPrime = false;
for(a=0; a<primeArray.length; a++){
if(currentNumber%primeArray[a] === 0){
isNotPrime = true;
}
if(a===(primeArray.length-1) && isNotPrime ===false){
document.write(currentNumber+"<BR>");
primeArray.push(currentNumber);
}
if(a===(primeArray.length-1)){
currentNumber++;
}
}
}
var main = setInterval(prime, 1);
window.alert("Starting search for Prime Numbers!");
可能的重复[如何计算循环可以在Javascript中运行的最大次数?](http://stackoverflow.com/questions/8256785/how-to-calculate-that-to-what-最大循环次数可以在javasc中运行) – bjb568
您还可以将循环限制为javascript 2^52的最大整数。对于非常大的素数,我推荐使用支持非常大的数字,C和Python的库:https://gmpy2.readthedocs.org/en/latest/mpz.html#mpz-methods – bitoiu