最佳答案
来自 维基百科:
算法的复杂性是
O(n(logn)(loglogn))位操作。
你是怎么知道的?
复杂性包括 loglogn术语,这告诉我在某个地方有一个 sqrt(n)。
假设我在前100个数字(n = 100)上运行筛选器,假设将数字标记为 Composite 需要固定的时间(数组实现) ,那么我们使用 mark_composite()的次数类似于
n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2)
为了找到下一个质数(例如,在划掉所有 5的倍数后跳到 7) ,操作的次数应该是 O(n)。
复杂度是 O(n^3).你同意吗?