平成25年 春期 応用情報技術者 午前 問7

配列Aに対して次の手続を実行して、2≤h≤100である素数kだけを全て出力したい。
a、b、cに入るループの初期値、終値、増分として、適切な組合せはどれか。

 for k = 2 to 100 step 1:
   A [k ] = 1;
 for m = 2 to 10 step:
   for k =   a   to   b   step   c  :
     A [k ] = 0;  for k = 2 to 100 step 1:
   if A [k ]≠0:
     print k ;

a b c
2 m2 1
2m 100 m
m m2 m
m2 100 1


答え イ


解説
この問題の処理はA [k ]が1ならk は素数、A [k ]が0ならk は素数でないとしていて、2番目のループ文はm の倍数は素数でないということで、該当するA [k ]の値を0としているので、2〜100の数の中で2と3は素数なので、最初に素数か調べるのは4であり、最初のm が2なので、for分の初期値は2m になる。
調べる範囲が100までなので、終値は100になり、増分はm になる。


キーワード
・ループ

キーワードの解説

戻る 一覧へ 次へ