6
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でしか割り切れないものです。

4

2 に答える 2