HOME»ITパスポート令和8年度» 問85
ITパスポート令和8年度 問85
問85
関数 isPrime は,引数として与えられた正の整数が,素数であればtrueを,素数でなければfalseを戻り値とする。例えば,関数 isPrime を isPrime(2) として呼び出したときの戻り値はtrueである。プログラム中のa,bに入れる字句の適切な組合せはどれか。
〔プログラム〕
〔プログラム〕

分類 :
テクノロジ系 » アルゴリズムとプログラミング » アルゴリズムとプログラミング
正解 :
エ
解説 :
〔aについて〕
このプログラムは、空欄aを含むif文がtrueとなると、その時点で戻り値としてfalseを返します。これは「素数ではない」と判定する処理です。
素数とは、2以上の自然数のうち、1とその数自身でしか割り切れない数いいます。無条件に「素数ではない」と判定できるのは、引数が1、0、負の整数、すなわち2未満の場合です。したがって、空欄aには「(2)より小さい」という条件が当てはまります。
一方で、条件式を「2以下」とすると、2が「素数ではない」と判定されてしまうため不適切です。
〔bについて〕
while文の()内には繰返し処理の継続条件を記述します。
このプログラムでは、div の値を1ずつ増やしながら、num が div で割り切れるかどうかを調べています。num より1小さい値まで調べても割り切れなければ、num は素数と判定できます。div が num と同じ値になった時点でwhileループを終了する必要がありますから、繰返しを続けるのは「num>div」の間となります。したがって、空欄bには「(div)より大きい」が当てはまります。
一方で、継続条件を「divと等しい」とすると、最後の1回で必ずnumはdivで割り切れます。その結果、常にfalseが返されることになり、正しい判定ができません。
以上より、a=より小さい、b=より大きい となる「エ」の組合せが適切です。
このプログラムは、空欄aを含むif文がtrueとなると、その時点で戻り値としてfalseを返します。これは「素数ではない」と判定する処理です。
素数とは、2以上の自然数のうち、1とその数自身でしか割り切れない数いいます。無条件に「素数ではない」と判定できるのは、引数が1、0、負の整数、すなわち2未満の場合です。したがって、空欄aには「(2)より小さい」という条件が当てはまります。
一方で、条件式を「2以下」とすると、2が「素数ではない」と判定されてしまうため不適切です。
〔bについて〕
while文の()内には繰返し処理の継続条件を記述します。
このプログラムでは、div の値を1ずつ増やしながら、num が div で割り切れるかどうかを調べています。num より1小さい値まで調べても割り切れなければ、num は素数と判定できます。div が num と同じ値になった時点でwhileループを終了する必要がありますから、繰返しを続けるのは「num>div」の間となります。したがって、空欄bには「(div)より大きい」が当てはまります。
一方で、継続条件を「divと等しい」とすると、最後の1回で必ずnumはdivで割り切れます。その結果、常にfalseが返されることになり、正しい判定ができません。
以上より、a=より小さい、b=より大きい となる「エ」の組合せが適切です。

