普通筛法时间界 O(nlnlnn) 的证明
定义
朴素素数筛法即是利用每一个素数筛出所有他的倍数。
证明
对于待筛选的最大数n,由于素数分布定理,其中的素数个数约等于 nlnn,第i个素数约为 ilni。则算法总的运行次数为:
∑i=1nlnnnilni=n∑i=1nlnn1ilni…(1)
(为了方便,计 ln1=1 )
考虑对
∑i=1nlnn1ilni…(2)
用积分估值。有:
∑i=1nlnn1ilni=O(∫nlnn21ilni di)…(3)
由微积分基本定理:
(3)=O(F(nlnn))…(4)F(x)=∫1ilni di=lnlni
因而:
(2)=(4)=O(lnlnnlnn)=O(lnlnn−lnlnlnn)=O(lnlnn)
所以:
(1)=O(nlnlnn)
证毕。