配列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 になる。
【キーワード】
・ループ
【キーワードの解説】
- ループ(loop)
特定の条件下において特定の処理を繰り返すことです。
特定の条件が成立している限り、特定の処理を繰り返し何度でも実行し、条件が成立しなくなったときに、処理を中止します。
条件式が永久に成立し続ける場合、ループは終了せず、これを無限ループと呼びます。
もっと、「ループ」について調べてみよう。
戻る
一覧へ
次へ
|