過去問解きまくり研究所 ホーム

令和8年度 問85

アルゴリズムとプログラミング

素数に関する問題

関数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
ア以下と等しい
イ以下より大きい
ウより小さいと等しい
エより小さいより大きい
答えと解説を見る

✓ これが正解エより小さい より大きい

解説

aにはより小さいが入り、bにはより大きいが入ります。

この関数は、2から順に割ってみて、割り切れたら素数ではないと判断します。はじめの判定は、そもそも判定の対象にならない値をはじくためのものです。素数のうちいちばん小さいのは2なので、2を下回る値は素数ではありません。よってaにはより小さいが入ります。次の繰返しは、割る数を2から1ずつ増やしながら試すところです。割る数が調べたい値に追いつくまで続ければよいので、調べたい値のほうが割る数より大きい間だけ回します。よってbにはより大きいが入ります。なお、割る数を調べたい値の平方根までに限れば、同じ答えをもっと早く出せます。この関数は、そこまでの工夫はしていません。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和8年度 ITパスポート試験 問85(改変:原典の図表をテキストに書き起こした)

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)