It began with one question. Why do the primes thin out the way they do, and why so unevenly?
Count them. Below a hundred there are 25. Below a hundred thousand there are 9,592.
Gauss guessed the trend, x / ln x. Riemann showed that the errors around it are governed by the zeros of a single function, ζ(s).
If every one of those zeros lies on one line, the primes are as regular as they can possibly be. That is the Riemann hypothesis, and I wanted to break it or prove it.
My first try, on 30 July, was to hand the sequence to a transformer. It learned the trend and none of the primes. So I went back to the oldest picture there is.
The waves
Every prime sends out a wave. The wave of 2 rises at 4, 6, 8. The wave of 3 rises at 6, 9, 12.
Lay the waves on top of each other. Where nothing arrives the line stays silent, and the silence is a prime.
I added more primes to the waves and the accuracy climbed. On 3 August my checker printed 78,498 correct out of 78,498 below a million.
Then the cracks showed. With waves up to P, composites hide beyond P². With waves up to 7, the number 121 slips through. With waves up to 47, 2,809 does.
The wave is exact up to P² and nowhere beyond. I had rediscovered the sieve of Eratosthenes, in the language of physics.
I wanted real waves, not spikes. So I multiplied sines, which vanish on every multiple of p.
Then I added cosines, and the sum became π²/6 plus a series of cosines. π²/6 is ζ(2). That was my first meeting with the zeta function.
Smooth or not, these waves only sort numbers by their remainders. They repeat every 2·3·5·7 = 210 steps, and the primes never repeat.
The complex plane
If waves were not enough, perhaps phases were. I sent every number into the complex plane, with one turning arrow for each prime that divides it.
The primes landed on the unit circle, every single one. For a few days it felt like a discovery.
Then I tested every number instead of the convenient ones. 4, 8, 9, 16, 25 sat on the circle too. I had built a prime-power detector, and I wrote that down in capitals.
The plane kept showing me spirals. Put n at angle 2π√n and radius √n, and the primes gather on curves.
This is the Sacks spiral. Every curve is a quadratic polynomial, like Euler's n² + n + 41, which is prime forty times in a row.
Turn by the golden angle instead and arms appear. They come from 21, 34 and 55, the Fibonacci numbers whose fractions nearly equal the golden angle.
Lay the same numbers on a square and you get Ulam's spiral. Same primes, a different window. The patterns belong to the window as much as to the primes.
Machines and codes
I tried to turn the primes into a code. Every prime above 3 is 6k − 1 or 6k + 1, so each k becomes a pair of bits.
I asked GPT and Gemini for the rule behind the bits. Both gave me recurrences that matched my first hundred pairs perfectly.
On the next nine hundred they were right 24 and 25 percent of the time. Guessing zero every time would have scored 47.
A rule that fits n bits always exists, about n/2 long, so the perfect fit proved nothing. The models had memorised the primes, not understood them.
My evolved formula for the nth prime missed by 1.14 percent at n = 100,000. Cipolla wrote a better one in 1902.
Along the way I met a strange hex string, FA57A5BA and 774 characters more. I grouped it, searched it, extended it and played it as music.
Finally I laid its bits on a 48 by 48 torus and let Conway's Game of Life run.
It settles into the same debris every random seed leaves behind. There were no hidden primes in it, only noise behaving like noise.
Walks and sound
On 18 August I stopped trying to predict the primes and started trying to see them.
Walk straight through every run of composites. At each prime, turn by the size of the gap, around one axis for primes ending in 1 or 7, around another for 3 or 9.
Twenty thousand primes become one thread wandering through space. What you hear is the same walk as music: each gap is the interval to the next note.
That week I made 528 radial plots, eleven sonified spirals and two animations. The gaps were irregular in every way except the ones Hardy and Littlewood had already predicted.
Toward Riemann
All of this was circling one object without ever touching it. Here it is.
Add the arrows 1/nˢ one after another. Each one turns at a speed set by ln n, just like the phases I had been drawing.
Take away the drift and the path winds into a single point. That point is ζ(s).
At t = 14.1347 the whole spiral winds into zero, and the music stops. That is the first zero. Keep going and it happens again at 21.0220, then at 25.0109.
Colour every point of the plane by the angle of ζ. Wherever all the colours meet, the function is zero.
Look where they meet: always on the line σ = ½. More than ten trillion zeros have been checked, and every one of them lies on it.
This is the formula I had been reaching for since the first day.
The prime staircase is a straight line plus one wave for every zero. My waves came from small primes. Riemann's come from the zeros.
Add the waves one at a time and listen. Each zero is a tone. With enough of them, the staircase of the primes rises out of pure oscillation.
If the hypothesis is true, every one of these waves grows like √x and no faster. The primes would be exactly as orderly as randomness allows.
Slide the line left or right and the curve of ζ no longer passes through zero. Only at σ = ½ does it touch.
The zeros also keep their distance from one another, exactly like the energy levels of heavy nuclei. Find the operator whose eigenvalues they are, and the hypothesis follows.
My prime matrix on 17 August was a first, crooked step toward that idea. Its eigenvalues split by parity, not by zeta.
Trying to break it
There is an honest way to try to break the hypothesis with nothing but whole numbers.
Robin proved in 1984 that it holds if and only if the sum of the divisors of n stays below e^γ n ln ln n for every n above 5040.
I checked every n up to a million. Below 5040 a few numbers rise above the line, which is allowed. Past 5040 the largest values press against it from below and never cross.
One number above 5040 that crossed it would end the question for good. I have not found it. Nobody has.
What I learned
I set out to break the Riemann hypothesis or to prove it. I did neither, and nobody will do either with a computer alone. But I rebuilt real mathematics from nothing on the way: the sieve as interference, the prime number theorem as a trend, the zeta function as a spiral, and Riemann's formula as music.
The wave picture was right, just pointed the wrong way. The primes really are made of waves. The waves come from the zeros, not from the primes themselves.
I've kept every claim I made in the notebooks, including the ones that broke when I tested them properly. Those failures taught me the most.
My claims, re-tested
| What I claimed | Result | What re-testing showed |
|---|---|---|
| The prime wave finds every prime | Held | Exactly up to P². It is the sieve of Eratosthenes. The perfect 78,498 / 78,498 used waves up to √N. |
| An O(1), context-free primality test | Failed | The notebook's own validation scored 58%, and the formula called 1,299,707 prime. It is 23 × 56,509. |
| Primes live on the unit circle | Partly | So do all prime powers: 4, 8, 9, 16, 25, 27, 32. I caught this myself. |
| Spiral "wave strength" separates primes 130× | Failed | The wave value called isprime(n) inside it, so the separation was built in. |
| Primes converge more slowly | Failed | The iteration settles at ln n − 1 for every n. It measures size, not primality. |
| A universal prime constant Φp | Failed | Its value is fitted separately for each range. |
| AI recurrences generate the prime pairs | Failed | 100 of 100 on the data they were fitted to, then 24% and 25%. Guessing zero scores 47%. |
| A formula for the nth prime | Partly | −1.14% at n = 100,000. Cipolla's 1902 formula gives −0.017%. |
| Gaps, spirals and webs show real structure | Held | Multiples of 6 dominate the gaps, Euler's polynomial draws the Sacks curves, and Dirichlet's theorem draws the webs. |
Try to break it yourself
Where I would go next
Compute zeros myself. Use the Riemann–Siegel formula, and certify that none were missed with Turing's method.
The Mertens function. The hypothesis is equivalent to M(x) growing no faster than x½ + ε.
Li's criterion. The hypothesis holds exactly when every Li coefficient λn is positive. Compute the first hundred.
The de Bruijn–Newman constant. Rodgers and Tao proved Λ ≥ 0 in 2018. The hypothesis says Λ = 0.
Reading that shaped this
- B. Riemann, Ueber die Anzahl der Primzahlen unter einer gegebenen Grösse, 1859.
- G. H. Hardy and J. E. Littlewood, Some problems of "Partitio numerorum" III, Acta Math. 44, 1923.
- H. L. Montgomery, The pair correlation of zeros of the zeta function, 1973.
- G. Robin, Grandes valeurs de la fonction somme des diviseurs et hypothèse de Riemann, 1984.
- B. Rodgers and T. Tao, The de Bruijn–Newman constant is non-negative, Forum Math. Pi, 2020.
The archive
| Path | Originally | Size | Saved |
|---|
Write to me
If you work on primes or the zeta function, spotted a mistake in here, or just found something strange in the numbers, I would like to hear from you.
Research, code and story · June to September 2025
github.com/joycemalik/primes · joycemalik14@gmail.com
Code MIT · words, figures and film CC BY 4.0