普通筛法时间界的证明

普通筛法时间界 O(nlnlnn) 的证明

定义

朴素素数筛法即是利用每一个素数筛出所有他的倍数。

证明

对于待筛选的最大数n,由于素数分布定理,其中的素数个数约等于 nlnn,第i个素数约为 ilni。则算法总的运行次数为:

i=1nlnnnilni=ni=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(lnlnnlnlnlnn)=O(lnlnn)

所以:

(1)=O(nlnlnn)

证毕。

原文地址:https://www.cnblogs.com/ljt12138/p/6684356.html