正解は ア
このプログラムは「エラトステネスの篩(ふるい)」というアルゴリズムを使って素数を見つけるものです。素数とは1とその数自身以外に約数を持たない自然数のことです。 このアルゴリズムの基本的な考え方は以下の通りです: 1. 2からmaxNumまでの数を順番に調べていく 2. ある数iについて、2からその数の平方根までの数で割り切れるかどうかをチェック 3. どの数でも割り切れなければその数は素数 プログラムでは、divideFlagという論理型変数を使って、ある数が素数かどうかを判定しています。最初にtrueを設定し、もし割り切れる数が見つかったらfalseにします。最終的にtrueのままならその数は素数として配列に追加されます。 [a]にmaxNumを入れるのは、2からmaxNumまでの全ての数を調べる必要があるためです。[b]には「i ÷ j の余りが0と等しい」を入れることで、iがjで割り切れるかどうかを判定します。
素数判定プログラムを理解する際は、以下の点に注目してください: 1. 範囲の設定:入力値以下の数を調べれば十分 2. 判定条件:割り切れるか(余りが0か)どうかが重要 3. 最適化:ある数nの約数を調べる場合、√nまでチェックすれば十分 また、エラトステネスの篩は基本的な素数判定アルゴリズムとして頻出です。仕組みを図示して理解しておくと、似たような問題にも対応できます。