令和8年度 問85 素数を判定するプログラムの条件

問題

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

関数isPrimeのプログラムと空欄表。divを2に設定。numが2[a]ならfalse、そうでなければnumがdiv[b]の間、num÷divの余りが0ならfalse、そうでなければdivを1増やす。繰返し後true。選択肢はア:以下/と等しい、イ:以下/より大きい、ウ:より小さい/と等しい、エ:より小さい/より大きい。

a:以下、b:と等しい

a:以下、b:より大きい

a:より小さい、b:と等しい

a:より小さい、b:より大きい

先に解説を見る
正解エ

a:より小さい、b:より大きい

解説

この問題のポイント

素数は、2以上で、1と自分自身以外では割り切れない整数です。判定では、まず1を除外し、次に自分自身より小さい整数で割り切れるかを確認します。1と2を入れて確かめると、条件の間違いに気付きやすくなります。

空欄に当てはめると

まず、numが2未満ならfalseにします。

次に、2からnumより小さい数までで割り切れるかを調べます。

自分自身で割ると必ず割り切れるので、div=numになる前に繰り返しを終えます。

正解:エ

素数判定の入力1・2・4の追跡。1はnum<2が真でfalse、2は試し割りをせずtrue、4は4 mod 2=0でfalse。割る数divはnum未満まで調べる。
解説図:素数判定の入力1・2・4の追跡

同じ分野の問題

関連する用語

編集・確認:kakoloop · 編集方針

公開日:

内容更新:

問題・解説の誤りを報告する

画像を拡大表示