A hundred zeros, computedRiemann
Riemann's 1859 paper is eight pages on how many primes there are below a given size [5]. It contains a guess that has stood unproved for 167 years, a million-dollar prize, and the reason this page exists: people keep asking whether proving it would break RSA. It would not. Here is what it is, computed rather than described.
Counting primes
Write π(x) for the number of primes up to x. Gauss, at fifteen, guessed from tables that π(x) runs
like x / ln x, and later that the integral li(x) = ∫ dt / ln t does better [4]. Both
were proved right in 1896 [6]. The sieve in tools/compute.py counts to ten
million:
| x | π(x) | x / ln x | miss | li(x) | miss |
|---|---|---|---|---|---|
| 101 | 4 | 4 | -0 | 6.2 | -2.2 |
| 102 | 25 | 22 | +3 | 30.1 | -5.1 |
| 103 | 168 | 145 | +23 | 177.6 | -9.6 |
| 104 | 1,229 | 1,086 | +143 | 1,246.1 | -17.1 |
| 105 | 9,592 | 8,686 | +906 | 9,629.8 | -37.8 |
| 106 | 78,498 | 72,382 | +6,116 | 78,627.5 | -129.5 |
| 107 | 664,579 | 620,421 | +44,158 | 664,918.4 | -339.4 |
The Riemann Hypothesis is a statement about that last column. It says the miss of li(x) never grows faster than about √x · ln x — the primes are spread as evenly as a random process could spread them, with no long-range conspiracy in either direction. Every check ever made agrees; nobody has proved it.
The zeros
Riemann's function is
Extended to complex s, it has zeros. The uninteresting ones sit at −2, −4, −6, … The interesting ones sit in the strip where the real part of s is between 0 and 1, and Riemann observed that every one he computed had real part exactly ½ — the critical line — and wrote that it was 'very probable' they all do. That sentence is the Hypothesis.
This site computed the first 100 of them, by Euler–Maclaurin summation of ζ along the line and bisection on sign changes of the Riemann–Siegel Z function, and checked the count against the Riemann–von Mangoldt formula so none was skipped. The first ten agree with Odlyzko's tables [36] to 1e-14:
| # | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| t | 14.134725 | 21.022040 | 25.010858 | 30.424876 | 32.935062 | 37.586178 | 40.918719 | 43.327073 | 48.005151 | 49.773832 |

The zeros draw the primes
Here is the part that makes the Hypothesis matter. Riemann's explicit formula writes the count of primes exactly in terms of the zeros. In the cleanest form, with ψ(x) counting each prime power pk ≤ x with weight ln p:
The slider adds the 100 zeros one at a time. With none, the formula is the line x. With ten, the big wobbles. With a hundred, the steps at every prime and prime power are there, to within 0.37 on average between the steps.
Add the zeros
Now the Hypothesis in one sentence: if every zero has real part ½, every wave has size exactly √x, and the primes can never stray from their smooth count by more than about √x · ln x. If some zero had real part ¾, its wave would have size x¾, and the primes would bunch and thin on a scale nobody has seen. That is all it says. It is a statement about the error term.
What it would and would not do to a key
Would not: give anyone a factoring algorithm. No method on this site — not the sieves, not the number field sieve, not Shor — runs faster if the Hypothesis is true, because none of them uses it. Their running times rest on how often values are smooth, and the heuristics for that are about smooth numbers, not zeros. A proof would be one of the great events in mathematics and would change no key size anywhere. The wallet, likewise.
Would, a little: tidy up some proofs. Miller's 1976 primality test is fast and certain if the Generalised Riemann Hypothesis holds [14]; without it, Rabin's 1980 version is fast and almost certain, and that is what every key generator on Earth uses, so nothing changes in practice. Since 2002 there has been a fast certain test with no hypothesis at all [33]. Telling prime from composite is easy. Splitting a composite is the problem, and the Hypothesis is silent on it.
Where the Hypothesis and quantum computing do meet is somewhere else entirely. In 1972 Hugh Montgomery showed Freeman Dyson his formula for how the zeros space themselves out, and Dyson recognised it on the spot: it was the spacing of the energy levels of a heavy atomic nucleus, from random matrix theory [34]. Odlyzko's computations of millions of zeros matched it to high precision [35]. The suggestion — Hilbert's and Pólya's, a century old — is that the zeros are the energy levels of some quantum system nobody has found, and Berry and Keating have a candidate [37]. A proof might come from physics. It still would not touch a key.
Recent: in 2024 Larry Guth and James Maynard gave the first improvement since 1940 on how many zeros can sit off the line in a given range [39] — progress on the Hypothesis, not a proof. Yitang Zhang's 2022 preprint on the Landau–Siegel zero, a related question, has one arXiv version and no journal [40]. Several 2025–2026 preprints claim full proofs; none has been accepted by a journal or by the field. The problem is open, and the Clay Institute's million is unclaimed [38].
The checks
25 checks run before this site publishes; 0 failing as of 2026-09-23.
- ok pi(10^6) = 78498
- ok pi(10^7) = 664579
- ok li beats x/ln x at 10^7
- ok li(10^6) near 78627.55
- ok first ten zeros match Odlyzko's to 1e-6
- ok zero count agrees with Riemann–von Mangoldt
- ok zeros strictly increasing
- ok zeta(2) = pi^2/6 by the same routine
- ok 100 zeros bring psi(x) within 3 everywhere on [2,100]
- ok 100 zeros: root-mean-square miss under 0.8
- ok zeros improve on x alone
- ok psi(100) = ln lcm(1..100)
- ok cost curve rises
- ok 768 -> 1024 lands between 100x and 10000x
- ok Shor: 7 mod 15 has period 4
- ok Shor: 15 splits into 3 and 5
- ok Shor: 2 mod 21 has period 6
- ok Shor: 21 splits into 3 and 7
- ok Kraitchik: 41^2 = 32 mod 1649
- ok Kraitchik: 43^2 = 200 mod 1649
- ok Kraitchik: 32*200 is a square
- ok Kraitchik: gcd gives 17
- ok Fermat: close primes fall in a handful of steps
- ok toy curve: order of G divides the point count
- ok toy curve: the walk returns to infinity