ウィキペディアから:
アルゴリズムの複雑さは
O(n(logn)(loglogn))ビット演算です。
どうやってそこにたどり着きますか?
複雑さにこのloglogn用語が含まれているということは、sqrt(n)どこかにあることを私に教えてくれます。
最初の100個の数値(n = 100)でふるいを実行していると仮定します。数値を複合としてマークするのに一定の時間がかかると仮定すると(配列の実装)、使用する回数は次のmark_composite()ようになります。
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
そして、次の素数を見つけるために(たとえば、7の倍数であるすべての数を取り消した後にジャンプするために5)、操作の数はになりますO(n)。
したがって、複雑さはになりますO(n^3)。同意しますか?