ITパスポート試験 ITパスポート 2026年 (令和8年) 問85: 関数 isPrime は,引数として与えられた正の整数が,素数であれば true を,素数でなければ false を戻り値とする。例えば,関数 isPrime

←
ITパスポート 2026年 (令和8年)
Q 8585 / 100
関数 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
ab
ア以下と等しい
イ以下より大きい
ウより小さいと等しい
エより小さいより大きい
この問の正解率:80.00%(535件)

解説

ITパスポート 2026年 (令和8年) 問85「関数 isPrime は,引数として与えられた正の整数が,素数であれば true…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約80%です。

正解

エ. a:より小さい b:より大きい

正答率 80.0%(535人中 428人が正解)

問題の解説

素数は 1 と自分自身以外に約数をもたない 2 以上の整数なので、1 は false にする。そこで a には「2 より小さい」が入る。b は、div を 2 から 1 ずつ増やして num を割っていく間の継続条件で、「num が div より大きい」の間だけ繰り返し、割り切れれば false、最後まで割り切れなければ true を返す。num が 2 のときは「num が div より大きい」が成り立たずループに入らないので true になり、例と一致する。

選択肢ごとの解説

  • アa を「2 以下」にすると num が 2 のときに false を返し、例の isPrime(2) が true になることに反する。b を「div と等しい」にすると、num が 4 のときなどループに入らず true を返す。
  • イb は合っているが、a を「2 以下」にすると num が 2 のときに false となる。2 は素数なので true を返さなければならず、判定を誤る。
  • ウa は合っているが、b を「div と等しい」にすると、num が 2 以外のときはループに入らずに true を返す。4 や 9 のような素数でない数を、素数と誤判定する。
  • エ正しい。1 は素数でないので 2 より小さい数は false とし、それ以外は div が num に達するまで割り切れるかを調べる。2 は true、9 は div が 3 のときに割り切れて false となり、正しく判定できる。

ITパスポート 2026年 (令和8年) の過去問一覧に戻る・問85

ITパスポート試験 の iOS アプリ版

アプリ版なら、よりスムーズに動作し、
スワイプで問題遷移ができます。

ITパスポート試験 合格.dev を App Store でダウンロード