※このページには広告(PR)が含まれます

ITパスポート 令和8年度 問85 の解説テクノロジ系/アルゴリズムとプログラミング

正解はエ。aは「より小さい」で、1が素数ではないことと2が素数であることを正しく処理できます。

関数 isPrime は、引数として与えられた正の整数が、素数であれば true を、素数でなければ false を戻り値とする。例えば、関数 isPrime を isPrime (2)として呼び出したときの戻り値はtrueである。プログラム中のa, bに入れる字句の適切な組合せはどれか。 [プログラム] ○論理型:isPrime (整数型: num) 整数型:div 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が「以下」の場合、numが2のときに最初のif文でfalseを返してしまい、2が素数と判定されません。bが「と等しい」の場合、whileループの条件が不適切で、素数判定が正しく行われません。
イa=以下, b=より大きい
選択肢イの解説: aが「以下」の場合、numが2のときに最初のif文でfalseを返してしまい、2が素数と判定されません。bは「より大きい」で正しいです。
ウa=より小さい, b=と等しい
選択肢ウの解説: aは「より小さい」で正しいです。bが「と等しい」の場合、whileループの条件が不適切で、素数判定が正しく行われません。
エa=より小さい, b=より大きい正解
選択肢エの解説: aは「より小さい」で、1が素数ではないことと2が素数であることを正しく処理できます。bは「より大きい」で、numがdivで割り切れるかどうかのチェックを適切に繰り返し、素数判定を正しく行えます。この組み合わせが正解です。

総合解説

正解はエです。この問題は、素数判定のアルゴリズムを理解し、プログラムの条件分岐(`if`文)と繰り返し処理(`while`文)における適切な比較演算子を選択できるかを問うものです。 まず、`a` について考えます。素数は「1とその数自身以外に正の約数を持たない、1より大きい自然数」と定義されます。したがって、1は素数ではありません。プログラムでは、`num` が素数でない場合に `return false` となるべきです。 ・`isPrime(1)` の場合、`if (1 が 2 [ a ])` が `true` となり `return false` となるのが適切です。この条件を満たすのは `a` が「より小さい」の場合です(1は2より小さい)。 ・また、`isPrime(2)` は `true` を返すと問題文にあります。もし `a` が「以下」だと、`if (2 が 2 以下)` が `true` となり `return false` となってしまい、2が素数と判定されません。したがって、`a` は「より小さい」が正しいです。 次に、`b` について考えます。`while` ループは、`num` が `div` で割り切れるかどうかを順にチェックする部分です。素数判定では、`div` が `num` の平方根を超えるまで、または `div` が `num` と等しくなるまでループを続けるのが一般的ですが、このプログラムの構造では `div` が `num` に到達する前にループを終了させる必要があります。 ・もし `num` が素数(例:7)の場合、`div` が2から始まり、6までチェックして割り切れなければ `return true` となるべきです。`div` が7になったときにループが継続すると、`7 ÷ 7 の余りが0と等しい` が `true` となり `return false` となってしまい、素数と判定されません。 ・したがって、`div` が `num` と等しくなる直前までループを続ける必要があります。つまり、`num` が `div` より大きい間はループを継続し、`num` と `div` が等しくなったらループを終了する、という条件が必要です。この条件を満たすのは `b` が「より大きい」の場合です。 以上の理由から、`a` には「より小さい」、`b` には「より大きい」が入るのが適切であり、選択肢エが正解となります。

執筆・監修: はるのパパ(運営者)更新日: 2026-07-05出典: ITパスポート試験 令和8年度 問85(IPA)

アルゴリズムとプログラミングをまとめて学ぶ

アルゴリズムとプログラミング 重点教科書 →

データ構造・擬似言語・探索と整列アルゴリズム・プログラム言語・HTML/XML/JSONまで、ITパスポートのアルゴリズム分野を体系的に解説します。

令和8年度を本番同様のCBT形式で解いてみよう

無料登録なしでも一部体験可能。登録すれば採点・弱点分析・AI教科書まで使えます。

令和8年度の過去問CBTを解く
PR(Amazon)

演習を続けやすい学習環境づくりに

🖥️

ノートPCスタンド(学習環境を整える)

画面の高さを目線に近づけると、姿勢が楽になります。カフェや図書館での学習にも持ち運べるタイプがあります。