var fs = require('fs');
var outfile = "primes.txt";
function getPrimes(max) {
var primeSieve = [], i, j, primes = [];
for (i = 2; i <= max; ++i) {
if (!primeSieve[i]) {
// i has not been marked - it is prime
primes.push(i);
for (j = i << 1; j <= max; j += i) {
primeSieve[j] = true;
}
}
}
return primes;
}
fs.writeFileSync(outfile, getPrimes(1000).slice(0,100) + ",");
console.log("Script: " + __filename + "\nWrote: " + getPrimes(1000).slice(0,100) + "To: " + outfile);
出力を生成するために変更した上記のコードがあります (他の誰かによって提供されたメイン アルゴリズム)。私はJavascriptを初めて使用し、次の行が実際に何をしているのか、および << 演算子が何を意味するのかわかりません(Javascript Webサイトで見つけることができませんでした)。
for (j = i << 1; j <= max; j += i)
メインのprimeSieve配列の関連する数値をtrueとしてマークしているため、素数配列にデータが入力されないことはわかっていますが、これがどのように行われているかはわかりません。