演習課題「エラトステネスの篩を実装する」
右側のコードエリアには、関数 eratosthenes を用いて 1 以上 1,000 以下の全ての整数について素数判定をおこなうコードが用意されています。関数 eratosthenes のコードを書き加え、コードを完成させてください。
期待する出力値
なし
※有料会員になるとこの動画をご利用いただけます
詳しい説明を読む
#03:エラトステネスの篩
このチャプターでは、ある整数以下のすべての素数を見つけるアルゴリズムである「エラトステネスの篩」について学習します。
isPrime を計算するときの i のループ範囲は、実は √n までで十分です。
boolean isPrime[] = new boolean[n + 1];
Arrays.fill(isPrime, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (!isPrime[i]){
continue;
}
for (int j = i + i; j <= n; j += i) {
isPrime[j] = false;
}
}
ログインすると採点できます
コードの実行