質問: 学校の課題で「エラトステネスの篩を用いて100以下のすべての素数とその個数を表示するプログラムを作成せよ。」との課題が出題されたのですが、ヒントを読むなり先生からの説明を聞くなりして、原理は理解できたのですが、何からプログラムを書き始めていいのかが全くわかりません。 ちなみに、与えられたヒントを下記に示します。 > > **ヒント:** > > ステップ1:2からNまでの整数をすべて篩いに入れる。m=1をする。 > > ステップ2:篩に残ったmより大きい最小の数をnとする。n>√Nであればステップ4へ > > ステップ3:nの倍数をすべて篩から落とす。(これらはnの倍数なので素数ではない。) > > m=nとする。ステップ3へ。 > > ステップ4:終了。篩に残っている数が素数である。 > > > 上記にも記したように、何からプログラムを書き始めればいいのかがわからないというのは、int... ,void... , int main()..., while文など、数え切れないほどあるc言語の中から、何を用いれば課題解決に近づくのかがわからないということです。 プログラミングをしてから間もない上に、かなり丸投げの質問になっているかもしれませんが、ご回答よろしくお願いします。
回答: とりあえず、2からNまでの値をいれておくところ(配列とか)を用意しましょう。 (大きさNの配列があれば、全部入りますよね) そして、配列の2番目からN番目の値を1にする(まだ、篩から落とされていないことを1で表す) 配列のnの倍数番目を0にしていくことで、nの倍数を篩から落としていきます。 まぁ、こんな感じで考えたらどうでしょうか?