ITパスポート 過去問
令和8年度
問85 (テクノロジ系 問31)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

ITパスポート試験 令和8年度 問85(テクノロジ系 問31) (訂正依頼・報告はこちら)

関数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
  • a:以下     b:と等しい
  • a:以下     b:より大きい
  • a:より小さい  b:と等しい
  • a:より小さい  b:より大きい

正解!素晴らしいです

残念...

この過去問の解説 (1件)

01

素数は2以上で、1と自分自身以外に正の約数をもたない整数です。このプログラムでは、2未満を先に除外し、2からnum−1までの整数で割り切れるかを調べる必要があります。

選択肢1. a:以下     b:と等しい

aを「以下」にするとnum=2までfalseになり、設問のisPrime(2)がtrueという条件に反します。また、bが「と等しい」では2以外の除数を順に試せません。

選択肢2. a:以下     b:より大きい

bを「より大きい」として除数を順に試す点は合っていますが、aを「以下」にすると素数2を誤ってfalseにします。

選択肢3. a:より小さい  b:と等しい

aを「より小さい」とすれば2を残せますが、bが「と等しい」では、numとdivが等しい場合だけを調べることになり、合成数を正しく判定できません。

選択肢4. a:より小さい  b:より大きい

正しいです。numが2より小さければfalseとし、それ以外ではnumがdivより大きい間、2から順に割り切れるかを確認します。約数が見つからなければtrueを返します。

まとめ

2未満を除外し、divがnumに達するまで候補の除数を順に試す必要があります。

参考になった数1