ITパスポート|アルゴリズムとプログラミング 問8
関数 isPrime は、引数として与えられた正の整数が、素数であれば true を、素数でなければ false を戻り値とする。例えば、関数 isPrime を isPrime(2) として呼び出したときの戻り値は true である。プログラム中の a、b に入れる字句の適切な組合せはどれか。
〔プログラム〕
○論理型: isPrime(整数型: num)
整数型: div ← 2
if (num が 2 [ a ])
return false
else
while (num が div [ b ])
if (num ÷ div の余り が 0 と等しい)
return false
else
div ← div + 1
endif
endwhile
return true
endif正解:エ
解説
素数は、1とその数自身以外で割り切れない2以上の整数です。2から順に、num より小さい数で割り切れるかを調べます。
- a
- 1は素数ではないので、num が 2「より小さい」ときに false を返します。「以下」だと、素数である 2 まで false になってしまいます。
- b
- div を 2 から増やしながら、num が div「より大きい」間だけ割り切れるかを調べます。num と div が等しくなったら終了し、true を返します。
- 確認
- isPrime(2) では、a の条件は偽。while の条件「2 が 2 より大きい」も偽なので、すぐ true を返します。
- エ 正解。a は「より小さい」、b は「より大きい」です。
出典:令和8年度 ITパスポート試験 公開問題 問85(読点「,」を「、」に改変)