この概念が出た関連問題

この試験の対策ガイド

ITパスポート試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は エ

解説

関数isPrimeは素数ならtrue、そうでなければfalseを返します。空欄aは、2未満(1以下)のときに素数でないとしてfalseを返す条件なので「より小さい」が入ります。空欄bは、divを2からnum未満まで増やして割り切れるか調べるループ条件で、numがdivより大きい間繰り返すため「より大きい」が入ります。isPrime(2)がtrueになることとも整合し、正解はエです。

なぜ他の選択肢は違うのか

選択肢 ア
aが以下、bが等しいは誤りです。aを「2以下」にするとnum=2でfalseを返してしまい、2が素数(true)にならず矛盾します。
選択肢 イ
aが以下は誤りです。num=2のときに2以下でfalseを返すと、2が素数と判定されず誤りです。bのより大きいは妥当ですが、aが誤りです。
選択肢 ウ
aのより小さいは正しいものの、bが等しいは誤りです。ループ条件をnumがdivと等しい間とすると、必要な範囲を正しく繰り返せません。

解くときのポイント

プログラム穴埋めは、具体値(ここではnum=2)を代入して挙動を確かめるのが有効です。素数判定は『2以上の約数で割り切れなければ素数』という考え方を押さえましょう。