4~8までの素数を求めます。3は既知の素数として扱っています。次に、篩に掛ける素数を一つ増やし、2,3で篩に掛けます。11,13,17,19,23が求まります。素数として求まります。このステップを繰り返せば、どんどん素数が求まることになります。下限、上限を指定できる配列もどきのクラスBoundedBoolArrayを作成しています。すれば、頭の悪い僕でも、篩にかける部分(trueをセットしているところと、素数を列挙しているところ)が苦労なく書くことができます。篩に掛けるので、「1億以下の素数をすべて求めよ」という問いに対して、トータルの処理時間は通常のエラトステネスの篩のコードよりは、わずかに遅くなりますが、列挙開始までの待ちがほぼゼロ、篩のサイズを指定する必要が無いという大きな利点があります。「100000番目の素数を求めよ」という問題があった場合、エラトステネスの篩を使った通常のやり方では、篩のサイズをいくつにしたら良いかわからないですから、今回作成したメソッドはとても有用であると思います。500);とか書くことができます。以下のようなコードだと、永久に素数を求め続けようとしますので、このような書き方は基本的にできません。メモリオーバーになるか、オーバーフローするかしてしまいます。......としていくことも可能です。すると、あっというまに大きなサイズの配列が必要になり、必要のない大きな数の素数まで求めることになってしまいます。これでは、返って速度の遅いプログラムになってしまいすし、列挙を早くするという最初の趣旨にも沿いません。upLoginユーザーは見つかりませんでした。