【发布时间】:2012-10-15 00:21:23
【问题描述】:
我正在尝试使用 javascript: 从http://projecteuler.net 解决一个数学问题:找到所有低于 200 万的素数的总和。当我运行我编写的脚本时,我的浏览器崩溃了(我使用的是 Google Chrome)。这是脚本:
function isPrime(num)
{
if(num < 2)
return false;
for (var i = 2; i < num; i++)
{
if(num%i==0)
return false;
}
return true;
}
var total=0e1;
for (var i = 1; i < 2000000; i++)
{
if(isPrime(i))
{
total=total+i;
}
}
document.write("The sum of all the primes below two million is ",total);
该脚本适用于较小的数字(i
【问题讨论】:
-
可能是服务器超时.. 可能需要提高 .htaccess 中的超时限制..
-
@McMastermind - 这看起来像是一个纯 Javascript 问题。为什么会涉及到服务器?
-
这是一个沉重的紧循环。它可能只是长时间占用您的浏览器。
-
有better ways to find primes,你知道...即使将你的测试条件更改为
sqrt(num)而不是num也会大大提高你的性能。您正在以最艰难的方式做到这一点。 -
看看this post 它会告诉你如何在 Chrome 中延长运行时间
标签: javascript primes