Prime-counting function

In mathematics, the prime-counting function is the function counting the number of prime numbers less than or equal to some real number $x$. It is denoted by $π(x)$ (unrelated to the number $\pi$).



Growth rate
Of great interest in number theory is the growth rate of the prime-counting function. It was conjectured in the end of the 18th century by Gauss and by Legendre to be approximately $$ \frac{x}{\log(x)} $$ where $π(n)$ is the natural logarithm, in the sense that $$\lim_{x\rightarrow\infty} \frac{\pi(x)}{x/\log(x)}=1. $$ This statement is the prime number theorem. An equivalent statement is $$\lim_{x\rightarrow\infty}\frac{\pi(x)}{\operatorname{li}(x)}=1$$ where $log$ is the logarithmic integral function. The prime number theorem was first proved in 1896 by Jacques Hadamard and by Charles de la Vallée Poussin independently, using properties of the Riemann zeta function introduced by Riemann in 1859. Proofs of the prime number theorem not using the zeta function or complex analysis were found around 1948 by Atle Selberg and by Paul Erdős (for the most part independently).

More precise estimates
In 1899, de la Vallée Poussin proved that $$\pi(x) = \operatorname{li} (x) + O \left(x e^{-a\sqrt{\log x}}\right) \quad\text{as } x \to \infty$$ for some positive constant $a$. Here, $li$ is the big $O$ notation.

More precise estimates of $O(...)$ are now known. For example, in 2002, Kevin Ford proved that $$\pi(x) = \operatorname{li} (x) + O \left(x \exp \left( -0.2098(\log x)^{3/5} (\log \log x)^{-1/5} \right) \right).$$

Mossinghoff and Trudgian proved an explicit upper bound for the difference between $π(x)$ and $π(x)$: $$\bigl| \pi(x) - \operatorname{li}(x) \bigr| \le 0.2593 \frac{x}{(\log x)^{3/4}} \exp \left( -\sqrt{ \frac{\log x}{6.315} } \right) \quad \text{for } x \ge 229.$$

For values of $li(x)$ that are not unreasonably large, $x$ is greater than $li(x)$. However, $π(x)$ is known to change sign infinitely many times. For a discussion of this, see Skewes' number.

Exact form
For $π(x) − li(x)$ let $x > 1$ when $π_{0}(x) = π(x) − 1⁄2$ is a prime number, and $x$ otherwise. Bernhard Riemann, in his work On the Number of Primes Less Than a Given Magnitude, proved that $π_{0}(x) = π(x)$ is equal to $$\pi_0(x) = \operatorname{R}(x) - \sum_{\rho}\operatorname{R}(x^\rho),$$ where $$\operatorname{R}(x) = \sum_{n=1}^{\infty} \frac{\mu(n)}{n} \operatorname{li}\left(x^{1/n}\right),$$ $π_{0}(x)$ is the Möbius function, $μ(n)$ is the logarithmic integral function, $li(x)$ indexes every zero of the Riemann zeta function, and $ρ$ is not evaluated with a branch cut but instead considered as $li(x^)$ where $Ei(ρ⁄n log x)$ is the exponential integral. If the trivial zeros are collected and the sum is taken only over the non-trivial zeros $Ei(x)$ of the Riemann zeta function, then $ρ$ may be approximated by $$\pi_0(x) \approx \operatorname{R}(x) - \sum_{\rho}\operatorname{R}\left(x^\rho\right) - \frac{1}{\log(x)} + \frac{1}{\pi} \arctan{\frac{\pi}{\log(x)}} .$$

The Riemann hypothesis suggests that every such non-trivial zero lies along $π_{0}(x)$.

Table of $Re(s) = 1⁄2$, $π(x)$, and $x⁄log(x)$
The table compares exact values of $li(x)$ to the two approximations $π(x)$ and $x / log x$. The last column, $li(x)$, is the average prime gap below $x$.
 * {| class="wikitable" style="text-align: right"

! $x / π(x)$ ! $x$ ! $π(x)$ ! $π(x) − x⁄log(x)$ ! $li(x) − π(x)$ % error ! $x⁄log(x)$ % error ! $li(x)$ In the On-Line Encyclopedia of Integer Sequences, the $x⁄π(x)$ column is sequence, $π(x)$ is sequence , and $x⁄log x$ is sequence.
 * 10
 * 4
 * 0
 * 2
 * 8.22%
 * 42.606%
 * 2.500
 * 102
 * 25
 * 3
 * 5
 * 14.06%
 * 18.597%
 * 4.000
 * 103
 * 168
 * 23
 * 10
 * 14.85%
 * 5.561%
 * 5.952
 * 104
 * 1,229
 * 143
 * 17
 * 12.37%
 * 1.384%
 * 8.137
 * 105
 * 9,592
 * 906
 * 38
 * 9.91%
 * 0.393%
 * 10.425
 * 106
 * 78,498
 * 6,116
 * 130
 * 8.11%
 * 0.164%
 * 12.739
 * 107
 * 664,579
 * 44,158
 * 339
 * 6.87%
 * 0.051%
 * 15.047
 * 108
 * 5,761,455
 * 332,774
 * 754
 * 5.94%
 * 0.013%
 * 17.357
 * 109
 * 50,847,534
 * 2,592,592
 * 1,701
 * 5.23%
 * 3.34 %
 * 19.667
 * 1010
 * 455,052,511
 * 20,758,029
 * 3,104
 * 4.66%
 * 6.82 %
 * 21.975
 * 1011
 * 4,118,054,813
 * 169,923,159
 * 11,588
 * 4.21%
 * 2.81 %
 * 24.283
 * 1012
 * 37,607,912,018
 * 1,416,705,193
 * 38,263
 * 3.83%
 * 1.02 %
 * 26.590
 * 1013
 * 346,065,536,839
 * 11,992,858,452
 * 108,971
 * 3.52%
 * 3.14 %
 * 28.896
 * 1014
 * 3,204,941,750,802
 * 102,838,308,636
 * 314,890
 * 3.26%
 * 9.82 %
 * 31.202
 * 1015
 * 29,844,570,422,669
 * 891,604,962,452
 * 1,052,619
 * 3.03%
 * 3.52 %
 * 33.507
 * 1016
 * 279,238,341,033,925
 * 7,804,289,844,393
 * 3,214,632
 * 2.83%
 * 1.15 %
 * 35.812
 * 1017
 * 2,623,557,157,654,233
 * 68,883,734,693,928
 * 7,956,589
 * 2.66%
 * 3.03 %
 * 38.116
 * 1018
 * 24,739,954,287,740,860
 * 612,483,070,893,536
 * 21,949,555
 * 2.51%
 * 8.87 %
 * 40.420
 * 1019
 * 234,057,667,276,344,607
 * 5,481,624,169,369,961
 * 99,877,775
 * 2.36%
 * 4.26 %
 * 42.725
 * 1020
 * 2,220,819,602,560,918,840
 * 49,347,193,044,659,702
 * 222,744,644
 * 2.24%
 * 1.01 %
 * 45.028
 * 1021
 * 21,127,269,486,018,731,928
 * 446,579,871,578,168,707
 * 597,394,254
 * 2.13%
 * 2.82 %
 * 47.332
 * 1022
 * 201,467,286,689,315,906,290
 * 4,060,704,006,019,620,994
 * 1,932,355,208
 * 2.03%
 * 9.59 %
 * 49.636
 * 1023
 * 1,925,320,391,606,803,968,923
 * 37,083,513,766,578,631,309
 * 7,250,186,216
 * 1.94%
 * 3.76 %
 * 51.939
 * 1024
 * 18,435,599,767,349,200,867,866
 * 339,996,354,713,708,049,069
 * 17,146,907,278
 * 1.86%
 * 9.31 %
 * 54.243
 * 1025
 * 176,846,309,399,143,769,411,680
 * 3,128,516,637,843,038,351,228
 * 55,160,980,939
 * 1.78%
 * 3.21 %
 * 56.546
 * 1026
 * 1,699,246,750,872,437,141,327,603
 * 28,883,358,936,853,188,823,261
 * 155,891,678,121
 * 1.71%
 * 9.17 %
 * 58.850
 * 1027
 * 16,352,460,426,841,680,446,427,399
 * 267,479,615,610,131,274,163,365
 * 508,666,658,006
 * 1.64%
 * 3.11 %
 * 61.153
 * 1028
 * 157,589,269,275,973,410,412,739,598
 * 2,484,097,167,669,186,251,622,127
 * 1,427,745,660,374
 * 1.58%
 * 9.05 %
 * 63.456
 * 1029
 * 1,520,698,109,714,272,166,094,258,063
 * 23,130,930,737,541,725,917,951,446
 * 4,551,193,622,464
 * 1.53%
 * 2.99 %
 * 65.759
 * }
 * 155,891,678,121
 * 1.71%
 * 9.17 %
 * 58.850
 * 1027
 * 16,352,460,426,841,680,446,427,399
 * 267,479,615,610,131,274,163,365
 * 508,666,658,006
 * 1.64%
 * 3.11 %
 * 61.153
 * 1028
 * 157,589,269,275,973,410,412,739,598
 * 2,484,097,167,669,186,251,622,127
 * 1,427,745,660,374
 * 1.58%
 * 9.05 %
 * 63.456
 * 1029
 * 1,520,698,109,714,272,166,094,258,063
 * 23,130,930,737,541,725,917,951,446
 * 4,551,193,622,464
 * 1.53%
 * 2.99 %
 * 65.759
 * }
 * 2.99 %
 * 65.759
 * }

The value for $Li(x)$ was originally computed by J. Buethe, J. Franke, A. Jost, and T. Kleinjung assuming the Riemann hypothesis. It was later verified unconditionally in a computation by D. J. Platt. The value for $x$ is due to J. Buethe, J. Franke, A. Jost, and T. Kleinjung. The value for $x$ was computed by D. B. Staple. All other prior entries in this table were also verified as part of that work.

The values for 1027, 1028, and 1029 were announced by David Baugh and Kim Walisch in 2015, 2020, and 2022, respectively.

Algorithms for evaluating $x⁄log x$
A simple way to find $Li(x)$, if $π(x)$ is not too large, is to use the sieve of Eratosthenes to produce the primes less than or equal to $π(x) − x⁄log x$ and then to count them.

A more elaborate way of finding $li(x) − π(x)$ is due to Legendre (using the inclusion–exclusion principle): given $π(10^{24})$, if $π(x)$ are distinct prime numbers, then the number of integers less than or equal to $π(10^{25})$ which are divisible by no $π(10^{26})$ is


 * $$\lfloor x\rfloor - \sum_{i}\left\lfloor\frac{x}{p_i}\right\rfloor + \sum_{i<j} \left\lfloor\frac{x}{p_ip_j}\right\rfloor - \sum_{i<j<k}\left\lfloor\frac{x}{p_ip_jp_k}\right\rfloor + \cdots$$

(where $π(x)$ denotes the floor function). This number is therefore equal to


 * $$\pi(x)-\pi\left(\sqrt{x}\right)+1$$

when the numbers $π(x)$ are the prime numbers less than or equal to the square root of $x$.

The Meissel–Lehmer algorithm
In a series of articles published between 1870 and 1885, Ernst Meissel described (and used) a practical combinatorial way of evaluating $x$: Let $π(x)$ be the first $x$ primes and denote by $p_{1}, p_{2},…, p_{n}$ the number of natural numbers not greater than $x$ which are divisible by none of the $p_{i}$ for any $⌊x⌋$. Then


 * $$\Phi(m,n)=\Phi(m,n-1)-\Phi\left(\frac m {p_n},n-1\right).$$

Given a natural number $p_{1}, p_{2},…, p_{n}$, if $x$ and if $π(x)$, then


 * $$\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) .$$

Using this approach, Meissel computed $p_{1}, p_{2},…, p_{n}$, for $n$ equal to $500,000$, 106, 107, and 108.

In 1959, Derrick Henry Lehmer extended and simplified Meissel's method. Define, for real $Φ(m,n)$ and for natural numbers $m$ and $p_{i}$, $i ≤ n$ as the number of numbers not greater than $m$ with exactly $k$ prime factors, all greater than $m$. Furthermore, set $n = π(3√m)$. Then


 * $$\Phi(m,n) = \sum_{k=0}^{+\infty} P_k(m,n)$$

where the sum actually has only finitely many nonzero terms. Let $μ = π(√m) − n$ denote an integer such that $π(x)$, and set $x$. Then $m$ and $n$ when $k$. Therefore,


 * $$\pi(m) = \Phi(m,n) + n - 1 - P_2(m,n)$$

The computation of $P_{k}(m,n)$ can be obtained this way:


 * $$P_2(m,n) = \sum_{y < p \le \sqrt{m} } \left( \pi \left( \frac m p \right) - \pi(p) + 1\right)$$

where the sum is over prime numbers.

On the other hand, the computation of $p_{n}$ can be done using the following rules:


 * 1) $$\Phi(m,0) = \lfloor m\rfloor$$
 * 2) $$\Phi(m,b) = \Phi(m,b-1) - \Phi\left(\frac m{p_b},b-1\right)$$

Using his method and an IBM 701, Lehmer was able to compute the correct value of $P_{0}(m,n) = 1$ and missed the correct value of $y$ by 1.

Further improvements to this method were made by Lagarias, Miller, Odlyzko, Deléglise, and Rivat.

Other prime-counting functions
Other prime-counting functions are also used because they are more convenient to work with.

Riemann's prime-power counting function
Riemann's prime-power counting function is usually denoted as $3√m ≤ y ≤ √m$ or $n = π(y)$. It has jumps of $P_{1}(m,n) = π(m) − n$ at prime powers $P_{k}(m,n) = 0$ and it takes a value halfway between the two sides at the discontinuities of $k ≥ 3$. That added detail is used because the function may then be defined by an inverse Mellin transform.

Formally, we may define $P_{2}(m,n)$ by
 * $$\Pi_0(x) = \frac{1}{2} \left( \sum_{p^n < x} \frac{1}{n} + \sum_{p^n \le x} \frac{1}{n} \right)\ $$

where the variable $p$ in each sum ranges over all primes within the specified limits.

We may also write
 * $$\ \Pi_0(x) = \sum_{n=2}^x \frac{\Lambda(n)}{\log n} - \frac{\Lambda(x)}{2\log x} = \sum_{n=1}^\infty \frac 1 n \pi_0\left(x^{1/n}\right)$$

where $Φ(m,n)$ is the von Mangoldt function and


 * $$\pi_0(x) = \lim_{\varepsilon \to 0} \frac{\pi(x-\varepsilon) + \pi(x+\varepsilon)}{2}.$$

The Möbius inversion formula then gives
 * $$\pi_0(x) = \sum_{n=1}^\infty \frac{\mu(n)}{n}\ \Pi_0\left(x^{1/n}\right),$$

where $π(10^{9})$ is the Möbius function.

Knowing the relationship between the logarithm of the Riemann zeta function and the von Mangoldt function $π(10^{10})$, and using the Perron formula we have
 * $$\log \zeta(s) = s \int_0^\infty \Pi_0(x) x^{-s-1}\, \mathrm{d}x$$

Chebyshev's function
The Chebyshev function weights primes or prime powers $π(x)$ by $Π_{0}(x)$:


 * $$\begin{align}

\theta(x) &= \sum_{p\le x} \log p \\ \psi(x)&=\sum_{p^n \le x} \log p = \sum_{n=1}^\infty \theta \left( x^{1/n} \right) = \sum_{n \le x}\Lambda(n). \end{align}$$

For $J_{0}(x)$,
 * $$\vartheta(x) = \pi(x)\log x - \int_2^x \frac{\pi(t)}{t}\, \mathrm{d}t $$

and
 * $$\pi(x)=\frac{\vartheta(x)}{\log x} + \int_2^x \frac{\vartheta(t)}{t\log^{2}(t)} \mathrm{d} t .$$

Formulas for prime-counting functions
Formulas for prime-counting functions come in two kinds: arithmetic formulas and analytic formulas. Analytic formulas for prime-counting were the first used to prove the prime number theorem. They stem from the work of Riemann and von Mangoldt, and are generally known as explicit formulae.

We have the following expression for the second Chebyshev function $1⁄n$:


 * $$\psi_0(x) = x - \sum_\rho \frac{x^\rho}{\rho} - \log 2\pi - \frac{1}{2} \log\left(1-x^{-2}\right),$$

where


 * $$\psi_0(x) = \lim_{\varepsilon \to 0} \frac{\psi(x - \varepsilon) + \psi(x + \varepsilon)}{2}.$$

Here $p^{n}$ are the zeros of the Riemann zeta function in the critical strip, where the real part of $π(x)$ is between zero and one. The formula is valid for values of $Π_{0}(x)$ greater than one, which is the region of interest. The sum over the roots is conditionally convergent, and should be taken in order of increasing absolute value of the imaginary part. Note that the same sum over the trivial roots gives the last subtrahend in the formula.

For $Λ$ we have a more complicated formula


 * $$\Pi_0(x) = \operatorname{li}(x) - \sum_{\rho} \operatorname{li}\left(x^\rho\right) - \log 2 + \int_x^\infty \frac{\mathrm{d}t}{t \left(t^2 - 1\right) \log t}.$$

Again, the formula is valid for $μ(n)$, while $Λ$ are the nontrivial zeros of the zeta function ordered according to their absolute value. The integral is equal to the series over the trivial zeros:


 * $$\int_x^\infty \frac{\mathrm dt}{t \left(t^2 - 1\right) \log t}=\int_x^\infty \frac{1}{t\log t}

\left(\sum_{m}t^{-2m}\right)\,\mathrm dt=\sum_{m}\int_x^\infty \frac{t^{-2m}}{t\log t} \,\mathrm dt \,\,\overset{\left(u=t^{-2m}\right)}{=}-\sum_{m} \operatorname{li}\left(x^{-2m}\right) $$

The first term $p^{n}$ is the usual logarithmic integral function; the expression $log(p)$ in the second term should be considered as $x ≥ 2$, where $ψ$ is the analytic continuation of the exponential integral function from negative reals to the complex plane with branch cut along the positive reals.

Thus, Möbius inversion formula gives us


 * $$\pi_0(x) = \operatorname{R}(x) - \sum_{\rho}\operatorname{R}\left(x^\rho\right) - \sum_{m} \operatorname{R}\left(x^{-2m}\right)$$

valid for $ρ$, where


 * $$\operatorname{R}(x) = \sum_{n=1}^{\infty} \frac{\mu(n)}{n} \operatorname{li}\left(x^{1/n}\right) = 1 + \sum_{k=1}^\infty \frac{\left(\log x\right)^k}{k! k \zeta(k+1)}$$

is Riemann's R-function and $ρ$ is the Möbius function. The latter series for it is known as Gram series. Because $x$ for all $Π_{0}(x)$, this series converges for all positive $x > 1$ by comparison with the series for $ρ$. The logarithm in the Gram series of the sum over the non-trivial zero contribution should be evaluated as $li(x)$ and not $li(x^{ρ})$.

Folkmar Bornemann proved, when assuming the conjecture that all zeros of the Riemann zeta function are simple, that
 * $$\operatorname{R}\left(e^{-2\pi t}\right)=\frac{1}{\pi}\sum_{k=1}^\infty\frac{(-1)^{k-1}t^{-2k-1}}{(2k+1)\zeta(2k+1)}+\frac12\sum_{\rho}\frac{t^{-\rho}}{\rho\cos\frac{\pi\rho}{2}\zeta'(\rho)}$$

where $Ei(ρ log x)$ runs over the non-trivial zeros of the Riemann zeta function and $Ei$.

The sum over non-trivial zeta zeros in the formula for $x > 1$ describes the fluctuations of $μ(n)$ while the remaining terms give the "smooth" part of prime-counting function, so one can use


 * $$\operatorname{R}(x) - \sum_{m=1}^\infty \operatorname{R}\left(x^{-2m}\right)$$

as a good estimator of $log x < x$ for $x > 0$. In fact, since the second term approaches 0 as $x$, while the amplitude of the "noisy" part is heuristically about $e^{x}$, estimating $ρ log x$ by $log x^{ρ}$ alone is just as good, and fluctuations of the distribution of primes may be clearly represented with the function


 * $$\bigl( \pi_0(x) - \operatorname{R}(x)\bigr) \frac{\log x}{\sqrt x}.$$

Inequalities
Here are some useful inequalities for $ρ$.


 * $$ \frac x {\log x} < \pi(x) < 1.25506 \frac x {\log x} $$

for $t > 0$.

The left inequality holds for $π_{0}(x)$ and the right inequality holds for $π_{0}(x)$. The constant 1.25506 is $π(x)$ to 5 decimal places, as $x > 1$ has its maximum value at $x → ∞$.

Pierre Dusart proved in 2010:


 * $$ \frac {x} {\log x - 1} < \pi(x)\quad \text{for }x \ge 5393,$$

and


 * $$ \pi(x) < \frac {x} {\log x - 1.1}\quad \text{for }x \ge 60184.$$

Here are some inequalities for the $√x⁄log x$th prime, $π(x)$. The upper bound is due to Rosser (1941), the lower one to Dusart (1999):

$$ n (\log (n \log n) - 1) < p_n < n {\log (n \log n)}\quad \text{for } n \ge 6.$$

The left inequality holds for $R(x)$ and the right inequality holds for $π(x)$.

An approximation for the nth prime number is
 * $$ p_n = n (\log (n \log n) - 1) + \frac {n (\log \log n - 2)} {\log n} + O\left( \frac {n (\log \log n)^2} {(\log n)^2}\right). $$

Ramanujan proved that the inequality
 * $$\pi(x)^2 < \frac{ex}{\log x} \pi\left( \frac{x}{e} \right)$$

holds for all sufficiently large values of $x ≥ 17$.

In 2010 Dusart proved (Proposition 6.6) that, for $x ≥ 17$,
 * $$p_n \le n \left( \log n + \log \log n - 1 + \frac{\log \log n - 2}{\log n} \right),$$

and (Proposition 6.7) that, for $x > 1$,
 * $$p_n \ge n \left( \log n + \log \log n - 1 + \frac{\log \log n - 2.1}{\log n} \right) .$$

More recently, Dusart has proved (Theorem 5.1) that, for $30 log 113⁄113$,
 * $$\pi(x) \le \frac{x}{\log x} \left( 1 + \frac{1}{\log x} + \frac{2}{\log^2 x} + \frac{7.59}{\log^3 x} \right),$$

and that, for $π(x) log x⁄x$,
 * $$ \pi(x) > \frac{x}{\log x} \left( 1 + \frac{1}{\log x} + \frac{2}{\log^2 x} \right) .$$

The Riemann hypothesis
The Riemann hypothesis implies a much tighter bound on the error in the estimate for $x = 113$, and hence to a more regular distribution of prime numbers,


 * $$\pi(x) = \operatorname{li}(x) + O(\sqrt{x} \log{x}).$$

Specifically,


 * $$|\pi(x) - \operatorname{li}(x)| < \frac{\sqrt{x}}{8\pi} \, \log{x}, \quad \text{for all } x \ge 2657. $$

proved that the Riemann hypothesis implies that for all $n$ there is a prime $p_{n}$ satisfying
 * $$x - \frac{4}{\pi} \sqrt{x} \log x < p \leq x.$$