基本情報トップに戻る
練習問題難易度: 標準2023年度

基本情報技術者 過去問練習問題 第1問

問題

次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は 1 から始まる。関数 findPrimeNumbers は、引数で与えられた整数以下の、全ての素数だけを格納した配列を返す関数である。ここで、引数に与える整数は 2 以上である。

の図表

選択肢

  1. 1a:maxNum   b:i ÷ j の余り が 0 と等しい
  2. 2a:maxNum   b:i ÷ j の商 が 1 と等しくない
  3. 3a:maxNum + 1   b:i ÷ j の余り が 0 と等しい
  4. 4a:maxNum + 1   b:i ÷ j の商 が 1 と等しくない

正解

1. a:maxNum   b:i ÷ j の余り が 0 と等しい

詳しい解説を見る

解説

素数とは「1 と自分自身以外に約数をもたない 2 以上の整数」です。外側の for は判定対象 i を 2 から順に動かします。maxNum 以下の素数を全て求めるので i は maxNum まで含めて回す必要があり、a は maxNum です(maxNum + 1 にすると範囲外の値まで判定してしまう)。内側の for は i を 2 から √i まで割ってみる試し割りです。i が j で割り切れる、すなわち「i ÷ j の余り が 0 と等しい」ときは i に約数があり素数ではないので、divideFlag を false にして繰返しを抜けます。よって b は「i ÷ j の余り が 0 と等しい」となり、組合せはアです。(出典: 令和5年度 基本情報技術者試験 科目B 問1)

一問一答

科目A 180問+科目B 60問

練習問題の関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。