Live Sieve Explorer
n (block depth) 6
M (block anchor) 100
Steps through the touching primes in increasing order, removing multiples of each from the r-grid — exactly Eratosthenes' original method, applied to this specific block.
alive (survived every prime processed so far)
just removed this step
removed earlier
Primes processed
0 / 0
Alive fraction (grid, N=—)
—
Exact target ∏(1−1/p) over all touching primes
—
M-averaged D(n) from Page 1 (for contrast)
—
—
Touching Primes, In Sieve Order
Only these primes ever remove anything from the grid — every other prime is a complete no-op for this specific (M,n).
| step | p | why it touches | factor (1−1/p) | cumulative product |
|---|
Why This Sieve Is Exact (and Most Aren't)
1 — Legendre's exact sieve, and why it's usually impractical
The classical exact sieve computes |{n ∈ A : gcd(n, P(z)) = 1}| via inclusion–exclusion over every
squarefree divisor of P(z) = ∏_{p<z} p — that's 2^π(z) terms. For z around a few hundred, π(z) is
already large enough that direct evaluation is hopeless, which is exactly why Brun's and Selberg's sieves
exist: they truncate the inclusion–exclusion and trade exactness for a provable upper or lower
bound instead of an exact value.
2 — Why our sieve skips that problem entirely
We never do inclusion–exclusion at all. Fixing M makes the touching-prime set finite and explicitly
computable — just factor the n+1 numbers M,…,M+n — and because divisibility by distinct primes is
independent (CRT), the surviving density is a straight product over that finite set, not an
alternating sum over its power set. No truncation, no bound, no error term: exact by construction.
3 — Why this doesn't generalize to hard sieve problems
Classical sieve applications (twin primes, Goldbach, prime gaps) don't get this luxury: the relevant
"bad" events aren't cleanly independent across primes at every scale the way block-coprimality's are,
so no finite touching-set trick is available and bounding sieves remain necessary. This project's object
is unusually well-behaved, which is precisely why C(n), C(n₁,…,n_k), and this exact finite sieve are all
provable outright rather than conjectural.
4 — This density is not D(n), and that's the point
Pages 1, 7, and 8 compute D(n) = C(n)/ζ(2), the density averaged over every M. This page computes
the exact density for one specific M — a single "phase" of that average, not the average itself.
They generally differ (see the result box above) — which is precisely why the finite-lattice canvases on
Pages 7 and 8 display the fixed-M count and the M-averaged prediction side by side rather than conflating them.