素数计数函数

在数学中，素数计数函数是一个用来表示小于或等于某个实数x的素数的个数的函数，记为 π ( x ) {\displaystyle \pi (x)} 。 在数论中，素数计数函数的增长率引起了很大的兴趣。在18世纪末，高斯和勒让德曾猜想这个函数大约为： x / ln ⁡ ( x ) {\displaystyle x/\operatorname {ln} (x)\!} 也就是 lim x → ∞ π ( x ) x / ln ⁡ ( x ) = 1. {\displaystyle \lim _{x\rightarrow \infty }{\frac {\pi (x)}{x/\operatorname {ln} (x)}}=1.\!} 这就是素数定理。一个等价的表述，是： lim x → ∞ π ( x ) / li ⁡ ( x ) = 1 {\displaystyle \lim _{x\rightarrow \infty }\pi (x)/\operatorname {li} (x)=1\!} 其中 li ⁡ ( x ) {\displaystyle \operatorname {li} (x)} 是对数积分函数。这个定理在1896年由法国数学家雅克·阿达马和比利时数学家德·拉·瓦莱布桑先后独立给出证明。证明用到了黎曼ζ函数的性质。 目前已知 π ( x ) {\displaystyle \pi (x)\!} 还有更精确的估计，例如： π ( x ) = li ⁡ ( x ) + O ( x exp ⁡ ( − ln ⁡ ( x ) 15 ) ) {\displaystyle \pi (x)=\operatorname {li} (x)+\mathrm {O} \left(x\exp \left(-{\frac {\sqrt {\ln(x)}}{15}}\right)\right)\!} 其中O是大O符号。1948年，阿特勒·塞爾伯格和保罗·埃尔德什不使用函数或复分析证明了素数定理。 另外一个关于素数计数函数的增长率的猜想，是： ∑ p ≤ x p n ∼ π ( x n + 1 ) ∼ L i ( x n + 1 ) . {\displaystyle \sum _{p\leq x}p^{n}\sim \pi (x^{n+1})\sim Li(x^{n+1}).} 如果 x {\displaystyle x} 不太大，一个简单的计算 π ( x ) {\displaystyle \pi (x)} 的方法就是算出每个素数（比如使用埃拉托斯特尼筛法）。 一个比较复杂的计算 π ( x ) {\displaystyle \pi (x)} 的方法是勒让德发现的：给定 x {\displaystyle x} ，如果 p 1 {\displaystyle p_{1}} 、  p 2 {\displaystyle p_{2}} 、 ……、  p k {\displaystyle p_{k}} 是不同的素数，则小于 x {\displaystyle x} 且不能被任何一个 p i {\displaystyle p_{i}} 整除的整数个数是： ⌊ x ⌋ − ∑ i ⌊ x p i ⌋ + ∑ i < j ⌊ x p i p j ⌋ − ∑ i < j < k ⌊ x p i p j p k ⌋ + ⋯ , {\displaystyle \lfloor x\rfloor -\sum _{i}\left\lfloor {\frac {x}{p_{i}}}\right\rfloor +\sum _{i<j}\left\lfloor {\frac {x}{p_{i}p_{j}}}\right\rfloor -\sum _{i<j<k}\left\lfloor {\frac {x}{p_{i}p_{j}p_{k}}}\right\rfloor +\cdots ,} （其中 ⌊ ⋅ ⌋ {\displaystyle \lfloor \cdot \rfloor } 是取整函数）。因此这个数等于： π ( x ) − π ( x ) + 1 {\displaystyle \pi (x)-\pi \left({\sqrt {x}}\right)+1\,} 其中 p 1 , p 2 , … , p k {\displaystyle p_{1},p_{2},\dots ,p_{k}} 是小于或等于 x {\displaystyle x} 的平方根的素数的个数。 恩斯特·梅塞尔在1870年和1885年发表的一系列文章中，描述并使用了一个计算 π ( x ) {\displaystyle \pi (x)} 的组合方法。设 p 1 {\displaystyle p_{1}} ,  p 2 {\displaystyle p_{2}} , …,  p n {\displaystyle p_{n}} 是最初 n {\displaystyle n} 个素数，不大于 m {\displaystyle m} 且不能整除任何一个 p i {\displaystyle p_{i}} 的自然数个数记为 Φ ( m , n ) {\displaystyle \Phi (m,n)} ，那么： Φ ( m , n ) = Φ ( m , n − 1 ) − Φ ( [ m p n ] , n − 1 ) . {\displaystyle \Phi (m,n)=\Phi (m,n-1)-\Phi \left(\left[{\frac {m}{p_{n}}}\right],n-1\right).\,} 给定一个自然数 m {\displaystyle m} ，如果 n = π ( m 3 ) {\displaystyle n=\pi \left({\sqrt[{3}]{m}}\right)} 且 μ = π ( m ) − n {\displaystyle \mu =\pi \left({\sqrt {m}}\right)-n} ，那么： π ( m ) = Φ ( m , n ) + n ( μ + 1 ) + μ 2 − μ 2 − 1 − ∑ k = 1 μ π ( m p n + k ) . {\displaystyle \pi (m)=\Phi (m,n)+n(\mu +1)+{\frac {\mu ^{2}-\mu }{2}}-1-\sum _{k=1}^{\mu }\pi \left({\frac {m}{p_{n+k}}}\right).\,} 利用这种方法，梅塞尔计算了 x {\displaystyle x} 等于5×105、106、107以及108时 π ( x ) {\displaystyle \pi (x)} 的值。 1959年，德里克·亨利·勒梅尔推广并简化了梅塞尔的方法。对于实数 m {\displaystyle m} 和自然数 n {\displaystyle n} 和 k {\displaystyle k} ，定义 P k ( m , n ) {\displaystyle P_{k}(m,n)} 为不大于m且正好有k个大于 p n {\displaystyle p_{n}} 的素因子的整数个数。更进一步，设定 P 0 ( m , n ) = 1 {\displaystyle P_{0}(m,n)=1} 。那么： Φ ( m , n ) = ∑ k = 0 + ∞ P k ( m , n ) , {\displaystyle \Phi (m,n)=\sum _{k=0}^{+\infty }P_{k}(m,n),\,} 这个和实际上只有有限个非零的项。设 y {\displaystyle y} 为一个整数，使得 m 3 ≤ y ≤ m {\displaystyle {\sqrt[{3}]{m}}\leq y\leq {\sqrt {m}}} ，并设 n = π ( y ) {\displaystyle n=\pi (y)} 。那么当 k {\displaystyle k}  ≥ 3时， P 1 ( m , n ) = π ( m ) − n {\displaystyle P_{1}(m,n)=\pi (m)-n} 且 P k ( m , n ) = 0 {\displaystyle P_{k}(m,n)=0} 。因此： π ( m ) = Φ ( m , n ) + n − 1 − P 2 ( m , n ) . {\displaystyle \pi (m)=\Phi (m,n)+n-1-P_{2}(m,n).} P 2 ( m , n ) {\displaystyle P_{2}(m,n)} 的计算可以用这种方法来获得： P 2 ( m , n ) = ∑ y < p ≤ m ( π ( m p ) − π ( p ) + 1 ) . {\displaystyle P_{2}(m,n)=\sum _{y<p\leq {\sqrt {m}}}\left(\pi \left({\frac {m}{p}}\right)-\pi (p)+1\right).\,} 另一方面， Φ ( m , n ) {\displaystyle \Phi (m,n)} 的计算可以用以下规则来完成： Φ ( m , 0 ) = ⌊ m ⌋ ; {\displaystyle \Phi (m,0)=\lfloor m\rfloor ;\,} Φ ( m , b ) = Φ ( m , b − 1 ) − Φ ( m p b , b − 1 ) . {\displaystyle \Phi (m,b)=\Phi (m,b-1)-\Phi \left({\frac {m}{p_{b}}},b-1\right).\,} 利用这种方法，勒梅尔计算了 π ( 10 10 ) {\displaystyle \pi \left(10^{10}\right)} 。 我们也使用其它的素数计数函数，因为它们更方便。其中一个是黎曼的素数计数函数，通常记为 Π 0 ( x ) {\displaystyle \Pi _{0}(x)} 。这个函数在自变量为素数的幂pn时突然增加了1/n，而该点的值则是两边的平均值。我们可以用以下公式来定义 Π 0 ( x ) {\displaystyle \Pi _{0}(x)} ： Π 0 ( x ) = 1 2 ( ∑ p n < x 1 n   + ∑ p n ≤ x 1 n ) {\displaystyle \Pi _{0}(x)={\frac {1}{2}}{\bigg (}\sum _{p^{n}<x}{\frac {1}{n}}\ +\sum _{p^{n}\leq x}{\frac {1}{n}}{\bigg )}} 其中p是素数。 也可以写成以下公式： Π 0 ( x ) = ∑ 2 x Λ ( n ) ln ⁡ n − 1 2 Λ ( x ) ln ⁡ x = ∑ n = 1 ∞ 1 n π 0 ( x 1 / n ) {\displaystyle \Pi _{0}(x)=\sum _{2}^{x}{\frac {\Lambda (n)}{\ln n}}-{\frac {1}{2}}{\frac {\Lambda (x)}{\ln x}}=\sum _{n=1}^{\infty }{\frac {1}{n}}\pi _{0}(x^{1/n})} 其中Λ(n)是馮·曼戈爾特函數， π 0 ( x ) = lim ε → 0 π ( x − ε ) + π ( x + ε ) 2 . {\displaystyle \pi _{0}(x)=\lim _{\varepsilon \rightarrow 0}{\frac {\pi (x-\varepsilon )+\pi (x+\varepsilon )}{2}}.} 利用默比乌斯反演公式，可得： π 0 ( x ) = ∑ n = 1 ∞ μ ( n ) n Π 0 ( x 1 / n ) {\displaystyle \pi _{0}(x)=\sum _{n=1}^{\infty }{\frac {\mu (n)}{n}}\Pi _{0}(x^{1/n})} 知道了黎曼ζ函数的对数与馮·曼戈爾特函數 Λ {\displaystyle \Lambda } 之间的关系，并利用佩龙公式，可得： ln ⁡ ζ ( s ) = s ∫ 0 ∞ Π 0 ( x ) x − s + 1 d x {\displaystyle \ln \zeta (s)=s\int _{0}^{\infty }\Pi _{0}(x)x^{-s+1}\,dx} 下面是一些有用的π(x)不等式。 x ln ⁡ x < π ( x ) < 1.25506 x ln ⁡ x {\displaystyle {\frac {x}{\ln x}}<\pi (x)<1.25506{\frac {x}{\ln x}}\!} ，左不等式适用于x ≥ 17，右不等式适用于x>1，常数1.25506为 30 ln ⁡ 113 113 {\displaystyle {\frac {30\ln 113}{113}}} 保留5位有效小数， π ( x ) ln ⁡ x x {\displaystyle {\frac {\pi (x)\ln x}{x}}} 最大值为x = 113。 Pierre Dusart 在2010年证明： x ln ⁡ x − 1 < π ( x ) {\displaystyle {\frac {x}{\ln x-1}}<\pi (x)\!} （其中 x ≥ 5393 {\displaystyle x\geq 5393} ） π ( x ) < x ln ⁡ x − 1.1 {\displaystyle \pi (x)<{\frac {x}{\ln x-1.1}}\!} （其中 x ≥ 60184 {\displaystyle x\geq 60184} ） 第n个素数pn的不等式： n ln ⁡ n + n ln ⁡ ln ⁡ n − n < p n < n ln ⁡ n + n ln ⁡ ln ⁡ n {\displaystyle n\ln n+n\ln \ln n-n<p_{n}<n\ln n+n\ln \ln n\!} 左面的不等式当n ≥ 2时成立，右面的不等式当n ≥ 6时成立，上限由Rosser（1941）提出，下限由Dusrat（1999）提出。 第n个素数的一个估计是： p n = n ln ⁡ n + n ln ⁡ ln ⁡ n − n + n ln ⁡ ln ⁡ n − 2 n ln ⁡ n + O ( n ( ln ⁡ ln ⁡ n ) 2 ( ln ⁡ n ) 2 ) . {\displaystyle p_{n}=n\ln n+n\ln \ln n-n+{\frac {n\ln \ln n-2n}{\ln n}}+O\left({\frac {n(\ln \ln n)^{2}}{(\ln n)^{2}}}\right).} Bach, Eric; Shallit, Jeffrey. Algorithmic Number Theory. MIT Press. 1996: volume 1 page 234 section 8.8. ISBN 0-262-02405-5.  引文使用过时参数coauthors (帮助) Marc Deléglise and Jöel Rivat, Computing π ( x ) {\displaystyle \pi (x)} : The Meissel, Lehmer, Lagarias, Miller, Odlyzko method（页面存档备份，存于互联网档案馆）, Mathematics of Computation, vol. 65, number 33, January 1996, pages 235–245 Dickson, Leonard Eugene. History of the Theory of Numbers I: Divisibility and Primality. Dover Publications. 2005. ISBN 0-486-44232-2.  Ireland, Kenneth; Rosen, Michael. A Classical Introduction to Modern Number Theory Second edition. Springer. 1998. ISBN 0-387-97329-X.  引文使用过时参数coauthors (帮助) 引文格式1维护：冗余文本 (link) 埃里克·韦斯坦因. Riemann Prime Counting Function. MathWorld.  Hwang H. Cheng Prime Magic conference given at the University of Bordeaux (France) at year 2001 Démarches de la Géométrie et des Nombres de l'Université du Bordeaux Titchmarsh, E. C. The Theory of Functions, 2nd ed. Oxford, England: Oxford University Press, 1960. Oliveira e Silva, Tomás Tables of values of pi(x) and of pi2(x) （页面存档备份，存于互联网档案馆） Gourdon, Xavier; Sebah,Pascal PrimePi values thru 4E22（页面存档备份，存于互联网档案馆）