ITパスポート 令和8年度公開問題科目A問85

科目A問85

関数 isPrime は,引数として与えられた正の整数が,素数であればtrueを,素数でなければfalseを戻り値とする。例えば,関数 isPrime を isPrime(2) として呼び出したときの戻り値はtrueである。プログラム中のa,bに入れる字句の適切な組合せはどれか。

〔プログラム〕
『情報処理過去問.com』からiPhoneアプリがリリースされました!!

正解

解説

画像のプログラムは、divを2から1ずつ増やしながらnumが割り切れるかを調べ、途中で割り切れたらfalseを返します。最初のif(空欄a)がtrueなら、その場でfalseを返す「素数ではない」判定です。素数は2以上なので、無条件で「素数ではない」とできるのは2未満のときです。よってaは2より小さいが適切です。
while(空欄b)は繰返しの継続条件です。divを増やしながら調べ、numがdivより大きい間だけ試し割りを続け、divがnumに達する前に終了させます。ここを「等しい」にすると最後にdiv=numとなり必ず余り0となってしまい、常にfalseになります。以上より、a=より小さい、b=より大きいで、正しい組合せはです。
ア.
aが「以下」なので2も除外してしまい不適切、bの「と等しい」も不適切です。
イ.
aが「以下」で2を素数でないと判定してしまうため不適切です。
ウ.
bが「と等しい」だと最後にdiv=numとなり必ず割り切れてfalseになってしまうため不適切です。
エ.
a=「より小さい」、b=「より大きい」で、仕様どおりに素数判定できます。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする