function getPrimes(max) {
var sieve = [], i, j, primes = [];
for (i = 2; i <= max; ++i) {
if (!sieve[i]) {
// i has not been marked -- it is prime
primes.push(i);
for (j = i << 1; j <= max; j += i) {
sieve[j] = true;
}
}
}
return primes;
}
i
私はそれがすべての数字を追跡していることを理解しています。
わかりません... !sieve[i]
、j = i << 1;
そして実際に何が起こっているのか。
明確にするために..素数は、それ自体または1でしか割り切れないものです。