素数判定プログラム
JavaScriptで素数を出力するプログラムを書いてみました。
最大値を15万程度にすると、「IEの動作を遅くしています」というメッセージが出ます。
もう少し高速で効率が良く、最大値を多くするにはどのように改良すると良いでしょうか?
最終的に、指定した値から○個の素数を出力する と言うプログラムにしたいと思っています。
例)100から10個
101, 103, 107, 109, 113, 127, 131, 137, 139, 149,
function prime() {
document.form.tbox2.value = "";
var i;var l;var count = 0;
var NUM = 100000;
p = new Array(NUM);
for(i=0;i<NUM;i++)p[i]=1;
p[0]=0;
for(i=2;i<=NUM/2;i++){
for(l=2;l*i<=NUM;l++){
if(p[l*i-1] == 1)
p[l*i-1] = 0;
}
}
for(j=min;count<pie;j++){
if(p[j-1] == 1){
document.form.tbox.value += j;
document.form.tbox.value += ", ";
}
}
}