関数 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- アa: 以下, b: と等しい
- イa: 以下, b: より大きい
- ウa: より小さい, b: と等しい
- エa: より小さい, b: より大きい
正解と解説を見る
正解
エ a: より小さい, b: より大きい
isPrime(2)がtrueを返すことから、aの条件でnum=2のときにfalseへ分岐してはいけないため、a には「より小さい」が入る(num=2は2未満ではないのでelse側に進む)。また、while文はdivを2からnumの直前まで順に割ってみて約数を探す処理なので、num自身に達するまで繰り返す必要があり、b には「より大きい」が入る。よって正解はエ(a:より小さい、b:より大きい)である。