Section 25.7 The Riemann Explicit Formula
Now we are finally ready to see Riemann's result, by plugging in the formula (25.6.1) for J into the Moebius inverted formula for Ο we saw just before Remark 25.4.4:
Ο(x)=J(x)β12J(βx)β13J(3βx)β15J(5βx)+16J(6βx)+β―
It is true that Riemann did not prove the following formula fully rigorously, and indeed one of the provers of the Prime Number Theorem mentioned taking decades as part of that effort just to prove all the statements Riemann made in this one paper. Nonetheless, it is certainly Riemann's formula for Ο(x), and an amazing one:
Fact 25.7.1. Riemann explicit formula.
Ο(x)=ββn=1ΞΌ(n)n[Li(x1/n)ββΟ(Li(xΟ/n)+Li(xΛΟ/n))+β«βx1/ndtt(t2β1)log(t)]

xxxxxxxxxx
import mpmath
var('y')
L = lcalc.zeros_in_interval(10,50,0.1)
def _(n=(100,(60,10^3))):
P = plot(prime_pi,n-50,n, color='black', legend_label=r'$\pi(x)$')
P += plot(Li,n-50,n, color='green', legend_label='$Li(x)$')
G = lambda x: sum([mpmath.li(x^(1/j)) * moebius(j)/j for j in [1..3]])
P += plot(G,n-50,n, color='red', legend_label = r'$\sum_{j=1}^{%s} \frac{\mu(j)}{j} Li(x^{1/j})$'%3)
F = lambda x: sum([(mpmath.li(x^(1/j))-log(2) + numerical_integral( 1/(y*(y^2-1)*log(y)), x^(1/j),oo)[0] )*moebius(j)/j for j in [1..3]]) - sum([(mpmath.ei(log(x)*((0.5+l[0]*i)/j)) + mpmath.ei(log(x)*((0.5-l[0]*i)/j))).real for l in L for j in [1..3]])
P += plot(F,n-50,n,color='blue', legend_label='Really good estimate',plot_points=50)
show(P)
xxxxxxxxxx
var('y')
L = lcalc.zeros_in_interval(10,300,0.1)
F = lambda x: sum([(mpmath.li(x^(1/j))-log(2) + numerical_integral(1/(y*(y^2-1)*log(y)),x^(1/j),oo)[0] )*moebius(j)/j for j in [1..3]]) - sum([(mpmath.ei(log(x)*((0.5+l[0]*i)/j)) + mpmath.ei(log(x)*((0.5-l[0]*i)/j))).real for l in L for j in [1..3]])
var('y')
L = lcalc.zeros_in_interval(10,300,0.1)
F = lambda x: sum([(mpmath.li(x^(1/j))-log(2) + numerical_integral(1/(y*(y^2-1)*log(y)),x^(1/j),oo)[0] )*moebius(j)/j for j in [1..3]]) - sum([(mpmath.ei(log(x)*((0.5+l[0]*i)/j)) + mpmath.ei(log(x)*((0.5-l[0]*i)/j))).real for l in L for j in [1..3]])
def _(n=300):
print(F(n))
print(prime_pi(n))
print(Li(n.n()))
print(Li(n.n()) - 1/2*Li(sqrt(n.n())) - 1/3*Li((n.n())^(1/3)))
Fact 25.7.3. Consequences of the (generalized) Riemann Hypothesis.
The following follow from the Riemann Hypothesis or a generalization for things like general Dirichlet series.
The Dirichlet series of the MΓΆbius function would be the multiplicative inverse of the zeta function for lots more complex values than just the real ones we proved it for in .
-
The value (not just average) of Ο(n) would have the following bound once n is big enough:
Ο(n)<eΞ³log(log(n)) The biggest gap between consecutive prime numbers could not be too big (to be precise, O(βplog(p)).
We would know exactly what it means for a type of prime to win the βprime racesβ (see Section 22.1).
Artin's conjecture (Conjecture 17.5.3) on primitive roots follows from a generalization as well.