科目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=より大きいで、正しい組合せはエです。
while(空欄b)は繰返しの継続条件です。divを増やしながら調べ、numがdivより大きい間だけ試し割りを続け、divがnumに達する前に終了させます。ここを「等しい」にすると最後にdiv=numとなり必ず余り0となってしまい、常にfalseになります。以上より、a=より小さい、b=より大きいで、正しい組合せはエです。
| ア. | |
| aが「以下」なので2も除外してしまい不適切、bの「と等しい」も不適切です。 | |
| イ. | |
| aが「以下」で2を素数でないと判定してしまうため不適切です。 | |
| ウ. | |
| bが「と等しい」だと最後にdiv=numとなり必ず割り切れてfalseになってしまうため不適切です。 | |
| エ. | |
| a=「より小さい」、b=「より大きい」で、仕様どおりに素数判定できます。 |