私は Euler プロジェクトで 3 番目の課題を試していましたが、このコードを書いて解決しようとしました。アイデアは、600851475143 の最大の素因数を見つけることです。Winscript からいくつかのポップアップが表示された後、正しい答えが得られましたが、CPU 25% に跳ね上がり、Winscript から他に何も得られないので、何かが原因で無限ループに陥っていると思います。誰が問題が何であるかを見つけることができますか?
var isprime = function(n)
{
var s= Math.sqrt(n);
for(i=2;i<=s;i++)
{
if(n%i===0)
{
return false;
}
}
return true;
};
var largest = 0;
var q=0;
while(q<(600851475143/4))
{
if(600851475143%q===0)
{
if(q>largest)
{
if(isprime(q))
{
largest=q;
WScript.Echo(largest);
}
}
var d = 600851475143/q;
if(d>largest)
{
if(isprime(d))
{
largest = d;
WScript.Echo(largest);
}
}
}
q+=1;
}
WScript.Echo(largest);