The Euclidean Algorithm
Listing divisors or factorising is slow. Around 300 BC, Euclid found a method for the
greatest common divisor
that is breathtakingly fast and needs no factorising at all. It is the oldest algorithm still
in everyday use — and it rests entirely on one short observation about
remainders.
The key fact
If a = bq + r, then any number that divides both
a and b also divides
r (since r = a - bq), and vice
versa. So the pair (a, b) and the pair
(b, r) share exactly the same common divisors — and
therefore the same gcd:
\gcd(a, b) = \gcd(b, r), \qquad r = a \bmod b.
Each step replaces a pair with a smaller pair without changing the answer. Keep going
and the second number shrinks to 0 — at which point the first number
is the gcd, because \gcd(g, 0) = g.
A worked example: \gcd(48, 18)
Replace the larger number by the remainder, over and over:
\begin{aligned}
48 &= 18 \cdot 2 + 12 \\
18 &= 12 \cdot 1 + 6 \\
12 &= 6 \cdot 2 + 0
\end{aligned}
The last non-zero remainder is 6, so
\gcd(48, 18) = 6. Three short divisions — no factorising in sight.
Even for thousand-digit numbers this finishes almost instantly.
See it as squares
There is a gorgeous geometric picture. Tile a
w \times h rectangle with the largest squares that fit: each
division \,\text{(big)} = \text{(small)}\cdot q + r\, lays down
q squares and leaves a smaller rectangle to tile next. The side of
the final square is the gcd — the largest square that tiles the whole rectangle
exactly. Step through it; press refresh for a new pair.