科目Bアルゴリズム

2023年春 科目B 問1
アルゴリズムの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次のプログラム中の a と b に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。


関数 findPrimeNumbers は,引数で与えられた整数以下の,全ての素数だけを格納した配列を返す関数である。ここで,引数に与える整数は2以上である。


〔プログラム〕

○整数型の配列: findPrimeNumbers(整数型: maxNum)

整数型の配列: pnList ← {} // 要素数0の配列

整数型: i, j

論理型: divideFlag

for (i を 2 から a まで 1 ずつ増やす)

divideFlag ← true

/* iの正の平方根の整数部分が2未満のときは,繰返し処理を実行しない */

for (j を 2 から iの正の平方根の整数部分 まで 1 ずつ増やす) // α

if ( b )

divideFlag ← false

αの行から始まる繰返し処理を終了する

endif

endfor

if (divideFlag が true と等しい)

pnListの末尾 に iの値 を追加する

endif

endfor

return pnList

当てはまるものを、ひとつ選んでね。

1〜4キーで選択し、Enterキーで採点できます。

出典:令和5年度 基本情報技術者試験 科目B 問1
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は ア です。

a: iをmaxNumまで繰り返せばよいのでmaxNum。b: jがiの約数かどうかを判定するにはi÷jの余りが0かどうかを確認します。余りが0なら割り切れる(素数でない)のでdivideFlagをfalseにして繰り返しを終了します。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…