超越欧拉的质数筛法
对原文中的错误致歉
原文:
m+w=O(n∗πi=1m(1−pi1))
实际上是
m+w=O(n∗πi=1c(1−pi1))
所以时间复杂度应为从O(loglognn)到O(lognn)①
仍然超越欧拉,但是并不是确定机的时间复杂度
但相比于Miller_Robin算法,这是一个确定的算法,还是有意义的
我们还是证明一下①
与原文类似的,
−lnT=i=1∑ck=1∑+ookpik1=i=1∑cpi1+θn>=loglogc−2
故
T<=logce2
下面估计c
显然,c<n
下证c>lnn
显然pi>i2
故
n<πi=1c+1pi+1<πi=1c+1(i+1)2=((c+1)!)2
由stiriling公式知:
(c+1!)=(2π(c+1))21(ec)c(1+O(n1))
代回可知(以下部分等号按等价号理解)
n<((c+1)!)2<(2π(c+1))(ec)2c(1+O(n1))
可以推出:clogc>41n
故c>logn
故时间复杂度应为从O(loglognn)到O(lognn)
仍然超越欧拉,但是并不是确定机的时间复杂度
声明:本文和原文中的log均以e为底