
ITパスポート 令和8年度 公開問題、全100問のうちの問85。
出典:令和8年度 ITパスポート試験 公開問題 問85(プログラムは原本の画像を文字に書き起こし、空欄を[ a ][ b ]の形で示した。選択肢の表を文に組み直した)
関数 isPrime は,
○論理型: isPrime(整数型: num)整数型: div ← 2if (num が 2 [ a ])return falseelsewhile (num が div [ b ])if (num ÷ div の余り が 0 と等しい)return falseelsediv ← div + 1endifendwhilereturn trueendif
- アa 以下,
b と等しい - イa 以下,
b より大きい - ウa より
小さい, b と等しい - エa より
小さい, b より大きい
答えと解説を開く
正解はエです。
素数は、
ほかの選択肢が違う理由
- ア「num が
2 以下」だと、 素数の 2 に false を 返してしまいます。 また 「と 等しい」だと、 num が 2 の とき以外は 繰返しに 入らないので、 4 のような 素数でない 数にも true を 返します。 - イ「num が
2 以下」だと、 isPrime(2) が false に なり、 例の true と 合いません。 - ウa は
合っていますが、 「num が div と 等しい」間だけ 繰り返すと、 num が 2 の とき以外は 繰返しに 入らず、 割り 切れるかを 調べないまま true を 返します。 例えば 4 も true に なってしまいます。
仕組み
このように、
穴埋めの