関数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:より大きい)である。