※本情報は解説作成時点のもので、閲覧時点では法改正等により情報が変更になっている場合がございます。あらかじめご理解いただければ幸いです。
正解は「A. a.maxNum b.i ÷ jの余りが0と等しい」です。
この問題は、与えられた整数以下の全ての素数を配列に格納するアルゴリズムの空欄補充問題です。aとbに適切な値を入れることで、正しく素数判定が行われます。
この記事では、基本情報技術者試験(FE)試験(令和5年度)で出題された過去問の第1問「配列と素数判定」について、試験対策の観点からわかりやすく解説します。
Contents
問題の仕組み
素数判定:2から自身の平方根まで割り切れるかをチェック
プログラムは、引数で与えられた整数 maxNum 以下の全ての素数を配列 pnList に格納する構造です。各整数 i について、2 から √i までの整数 j で割り切れるかを確認します。割り切れれば素数ではないのでスキップ、割り切れなければ素数として配列に追加します。
空欄 a と b の意味
- a:ループの上限 → maxNum(全ての整数を 2 から maxNum まで調べる)
- b:割り切れ判定 → i ÷ j の余りが 0 と等しい(i が j で割り切れた場合)
この組み合わせで、正しく素数のみが pnList に追加されます。
他の選択肢との違い
- a.maxNum b.i → j の商が1と等しくない:平方根チェックの意味が異なる
- a.maxNum + 1 b.i ÷ jの余りが0と等しい:ループ上限が余計
- a.maxNum + 1 b.i → jの商が1と等しくない:両方誤り
正しい素数判定を行うのは a.maxNum と i ÷ j の余りチェックの組み合わせです。
問われているポイント
この問題では、配列操作と素数判定の基本アルゴリズムが理解できているかが問われています。
ループ範囲や割り切れ判定の条件を正しく選ぶことが重要です。
気を付けてほしい点(勘違いしやすいポイント)
- 平方根の整数部分まで調べることを忘れない
- 割り切れたら素数ではないので、フラグを false にする
補足
配列のインデックスが1から始まる仕様も確認しておきましょう。
基本情報技術者試験(FE)試験での出題パターン
配列操作や素数判定など、アルゴリズムの基本理解を問う問題は毎年出題されます。
空欄補充やフローチャート形式での出題も多いので、手順を正確に理解しておくことが重要です。
この知識が使われている問題
まとめ
- a.maxNum と i ÷ j の余りが0と等しい を選ぶのが正解
- 平方根まで割り切れチェックを行い、正しく素数を配列に追加する