The Shape of the ρ

Pollard's 1975 method factors a number by walking a simple loop — square, add one, take the remainder — until the walk catches its own tail. The walk always makes the shape of the Greek letter it's named for. Here is that shape, the factor that falls out of it, and the birthday-paradox reason it's fast.

Take a modulus n and the map f(x) = x² + c (mod n). Start anywhere and apply it over and over. Because every input has exactly one output and there are only finitely many residues, the orbit must eventually revisit a value it has already seen — and from then on it loops forever. So every orbit looks the same: a tail running in, then a cycle it can never leave. That picture — a stem feeding a loop — is the lowercase Greek rho, ρ, and it is exactly why John Pollard called his method the rho method.

I · Draw the ρ

Trace any residue's orbit under x²+c mod n, for 2 ≤ n ≤ 100000. The dots are the values it visits; the orbit walks down the stem and around the loop it lands in.

Orbit tracer

II · The factor falls out

Now the trick. Pollard runs two walkers on the same orbit — a tortoise that steps once, a hare that steps twice — and at each step computes gcd(|tortoise − hare|, N). While that gcd is 1, nothing has happened. When 1 < gcd < N, it is a nontrivial factor of N. If the gcd equals N, try another c. Pick a number to break and watch:

Pollard rho factoring machine

The lower track shows the tortoise's history so far, reduced modulo a secret factor p. It may still be walking when the gcd finds a factor: the gcd compares the tortoise with the hare, and may detect a different factor.

III · Why it's fast — the birthday √n

A walk mod n closes its loop after about √(πn/2) ≈ 1.25·√n steps — the same square-root law as the birthday problem (you only need ~√(days) people to get a shared birthday). For a number N = p·q, the hidden walk mod the smaller prime p closes after only ~√p steps — long before the walk mod N would — and that is what the gcd catches. So Pollard's method finds a factor in about N^(1/4) steps, not the √N of trial division. Choose a prime and measure it:

The rho-length law

Two values of c break the law, and they are the two every textbook tells you to avoid: c = 0 (the map x→x²) and c = −2 (the Lucas–Lehmer map). Their orbits are governed by multiplicative order, not chance, so they don't behave like a random walk at all — and this is now proven, not just observed. Squaring is the doubling map on the exponent of Fp*, so its periodic points are exactly the elements of odd order, together with 0; and x²−2, through the Chebyshev change of variable x = y + 1/y, becomes y → y² on two groups at once (orders p−1 and p+1). This determines its periodic-point count, without ranking its distance from the random-map prediction. The exact counts are pinned and certified two ways in research/pollard-rho/special-c.md.

The check

The interactive readouts are recomputed live, and the same engine is verified from scratch in research/pollard-rho/verify.mjs (26/26): the graph counts agree with an independent brute force for all n ≤ 200; Pollard's rho factors a battery of semiprimes up to ~9.2×10¹⁸; the mean rho length over all generic c lands within ~3% of √(πp/2); and the two degenerate maps are certified as theorems — periodic points of x→x² mod p = 1 + oddpart(p−1) and periodic points of x²−2 mod p = (oddpart(p−1)+oddpart(p+1))/2 — each checked by formula for every odd prime 3 ≤ p < 2000. The periodic sets are also built from group theory and matched element-for-element to the graph: primes 3 ≤ p < 500 for c = 0, and primes 5 ≤ p < 200 for c = −2. The derivation is research/pollard-rho/special-c.md.

Counting the structure of this map turned up new arithmetic, too. The number of cycles of x²+1 mod n is catalogued as OEIS A352635, which our engine reproduces exactly — but its sibling, the number of periodic points, is absent from OEIS (checked 2026-06-25), as are two summed-over-c invariants. All three are staged with reproducible code and a b-file in oversight/oeis/pollard-rho-x2plus1/:

The published engine can be checked with node research/pollard-rho/verify.mjs. The linked per-term account also lists a staged artifact-gate script, which is absent from the published repository and deposit; its helper is also absent from the deposit.

periodic points of x²+1 mod n  =  1,2,1,2,3,2,2,2,3,6,2,2,6,4,3,2,6,6,2,6,…

The claims record 110 claims re-read against their sources, 14 October 2026

Written 2026-06-25. Claims re-read against their sources on 2026-10-14: 110 checked, 82 confirmed, 26 wrong, 0 unverifiable, 2 true when written and overtaken since (dated, not corrected). By the assay line (research/assay-line/queue-1014c/), Codex fixer directed by claude-assaying-boyle-1014; source record by Codex, checked by Codex.

This was the directed correction pass for the 28 items in research/assay-line/queue-1014c/the-shape-of-the-rho/triage.json at f5e5f84f34, with each item's evidence reread before editing. It also carries the 82 CONFIRMED claims that checker N2 reread, explicitly attributed below; those are retained checker evidence, not a claim that this fixer independently repeated every source lookup. The fixer reproduced the affected instrument states, independently computed the replacement figures, checked the cited mathematics and public package, and ran the browser verifier, research verifier and claims gate. MINOR lines count toward wrong in this record. The generated placard refresh is left to landing, as the triage directs; this record supplies its new verification date. The report lists the remaining work and exact changes. Original quoted punctuation U+2014 is represented as the literal escape `\u2014`, and vertical bars inside claims are represented as `&#124;`. Retained evidence references name the checker or pinned commit so they do not imply an unperformed fresh observation.

This record is long (110 claim lines and 28 findings), so it is not part of the page until you open it. It loads here now if your browser runs scripts; otherwise, or to keep it, read the whole record as plain text.

The assay office: what a record is, and every layer re-read so far.

The engine and research verifier above are available. The linked STAGED.md also tells readers to run a staged artifact-gate script; that script is absent from the published repository and deposit, and its helper is absent from the deposit.