エラトステネスの篩
$ N 以下の素数を全て見つけ出す高速な方法
1:2 から$ Nまでの整数を並べる。
2:生き残っている数の中で一番小さい(かつまだ$ pとして使われていない)ものを新たに$ pとおき、$ p以外の$ pの倍数を全て消していく。
3:2の操作を繰り返していき、$ pが $ \sqrt N を越えたら終了。最終的に生き残ったものが素数。
計算量は$ O(N \log \log N)
$ \log nよりも高速なのでものすごく速い
愚直に2から$ N まで1つずつ調べていくやり方と比較して圧倒的に速い
この場合、計算量が$ \sqrt N の素数判定を$ N 回繰り返すので$ O(N\sqrt N)