問題
選択肢
- 1true
- 2false
- 37
- 40
正解
1. true
詳しい解説を見る解説を閉じる
解説
このプログラムは、nが2からn−1までのいずれかの数で割り切れたらflagをfalseにする素数判定である。n=7の場合、iは2〜6まで動き、7 mod 2=1、7 mod 3=1、7 mod 4=3、7 mod 5=2、7 mod 6=1とすべて0にならないため、flagがfalseに書き換えられることはなく、初期値のtrueのまま終了する。7は素数であり、「true」が正解である。falseはいずれかで割り切れると誤読した場合の誤りで、7や0はそもそも論理型変数flagの値として型が不適切である。頻出ポイント:割り切れるか調べる範囲は本問のようにn−1までの素朴な実装のほか、平方根まで調べれば十分という効率化も知られている。フラグ変数の初期値と更新条件の読み取りは科目Bの定番である。
一問一答
科目A 180問+科目B 60問