← LibraryClassical Factoring: Trial Division, Fermat and LehmanEngineering · MathematicsLesson 1/8← PrevNext →
GuidePublished 6 Aug 20265 min readBy Kevin JoginComputational Number TheoryFactoringTrial DivisionFermat Factorisation
Skip to the main content

MathematicsFactoring

Classical Factoring: Trial Division, Fermat and Lehman

The elementary methods that still run first in every factoring pipeline, and the arithmetic identity behind all difference-of-squares approaches.

Executive summary

Cheap methods first — they remove most of the work

Trial division by small primes removes small factors at negligible cost and is always the first stage of any factoring pipeline. Fermat's method attacks the opposite extreme, factoring quickly when the two factors are close together, by searching for a representation of n as a difference of squares. Lehman's method interpolates between them, guaranteeing a factor in O(n1/3) operations — the identity behind Fermat is also the identity behind the quadratic sieve and the number field sieve.

Learning objectives

  • Implement trial division with a wheel and state its cost.
  • Apply Fermat's method and identify when it is fast.
  • Explain Lehman's multiplier trick and its complexity.
  • Describe the difference-of-squares identity common to modern sieves.
  • Order the stages of a practical factoring pipeline.

Section 01Trial division

Dividing by 2, 3, 5 and then by numbers coprime to them — a wheel — removes small factors efficiently. A wheel modulo 30 tests only 8 of every 30 candidates, a saving of more than 70% over testing all odd numbers.

AlgorithmTrial division with a modulus-30 wheelin: n  →  out: small prime factors and the remaining cofactor
  1. Remove all factors of 2, 3 and 5 by repeated division.
  2. Set d ← 7 and cycle the increments 4, 2, 4, 2, 4, 6, 2, 6. These skip every multiple of 2, 3 and 5.
  3. While d2 ≤ n: while d divides n, record d and divide it out.
  4. Advance d by the next increment in the cycle.
  5. If n > 1 after the loop, n itself is prime.
Cost O(√n / log n) in the worst case, but the point is to stop early: run to a bound of 105 or 106 and hand the cofactor to a stronger method.
Where to stop

Trial division should be run to a fixed bound, not to √n. Beyond about 106 every stronger method is faster per factor found. The purpose of this stage is to remove the many small factors cheaply, not to complete the factorisation.

Section 02Fermat's method

If n = ab with ab both odd, then

n = x2y2 = (xy)(x + y),    x = (a+b)/2, y = (ba)/2

So the search starts at x = ⌈√n⌉ and increments, testing whether x2 − n is a perfect square. When the factors are close, y is small and the search terminates almost immediately.

Catastrophic when the factors are far apart

For n = 2p with p large, x must climb to roughly n/4 before y becomes an integer — worse than trial division. Fermat's method is a special-case tool, and its inclusion in a pipeline should be bounded by a small iteration budget.

But the identity is universal

Every modern general-purpose factoring algorithm — the continued fraction method, the quadratic sieve, the number field sieve — seeks a congruence x² ≡ y² (mod n) with x ≢ ±y, then takes gcd(x − y, n). They differ only in how the congruence is manufactured. Fermat's method is the direct, and worst, way of finding one.

Section 03Lehman's method

Lehman's improvement applies Fermat's search not to n but to kn for a range of small multipliers k. A suitable multiplier makes the two factors of kn nearly equal, which is exactly the case Fermat handles well.

O(n1/3)guaranteed worst-case complexity
n1/3trial division bound used first
Deterministicno randomisation, no failure mode
AlgorithmLehman's methodin: n  →  out: a non-trivial factor, or a proof of primality
  1. Trial divide n by all integers up to n1/3. This handles every factor below the bound.
  2. For k = 1 to n1/3:
  3.    For x in a short range starting at ⌈√(4kn)⌉:
  4.       If x2 − 4kn is a perfect square y2, then gcd(x + y, n) is a non-trivial factor.
  5. If nothing is found, n is prime.
The range of x for each k is short — on the order of n1/6/√k — which is what keeps the total at O(n1/3).
Historical significance

Lehman's method was the first to beat the √n barrier deterministically. It is superseded in practice by ρ, p−1 and ECM, but it remains the clean example of how a multiplier can reshape a problem into a favourable case.

Section 04The pipeline

  1. Stage 01Trial divisionTo about 106. Removes most factors at negligible cost.
  2. Stage 02Perfect power testDetect n = mk; several later methods misbehave on perfect powers.
  3. Stage 03Compositeness testA strong probable prime test — there is no point factoring a prime.
  4. Stage 04Mid-range methodsPollard ρ and SQUFOF for factors up to about 20 digits; p−1 for smooth cases.
  5. Stage 05ECMFinds factors up to 50 or 60 digits, with cost governed by the factor size.
  6. Stage 06SievesMPQS or the number field sieve, whose cost depends on the size of n itself.
Order matters, and so does recursion

Running a sieve before ECM wastes enormous effort when a mid-sized factor exists. Equally, each factor found must be tested for primality and the cofactor fed back through the pipeline — a composite cofactor left unfactored is a silently incomplete result.

ReferenceFrequently asked questions

Is trial division ever the best complete method?

For numbers up to about 12 digits, yes — a wheel with a precomputed prime table completes faster than the setup cost of any sophisticated method. Small-input performance matters because factoring routines are called recursively on cofactors.

Why test for perfect powers explicitly?

Because Pollard's rho degenerates on them, ECM can behave unpredictably, and the sieves assume a composite with distinct factors. The test costs almost nothing and prevents several failure modes at once.

Does Fermat's method have any modern use?

As a bounded check for the specific weakness of nearly-equal factors, which occasionally arises from poor RSA key generation. Run for a few thousand iterations it costs almost nothing and occasionally succeeds outright.

NavigateContinue in this stream

Curated next steps from this page. The site also surfaces algorithmically related reading below.

ProvenanceSources and further reading

This page is an original KEVOS explanatory article. It presents the underlying mathematics — definitions, algorithms, complexity results and selection criteria — in KEVOS editorial voice. No text is reproduced from any copyrighted source. Where numerical tables are relevant, KEVOS links to live authoritative databases rather than republishing static values.

Page ID
KV-MATH-0049
Taxonomy
ENG-MATH — Engineering / Mathematics
Collection
COL-CANT-001
Topic stream
CANT-FACTORING
Version
1.1.0 / content 2026.08
Last reviewed
2026-08-06

Continue learning

NEXT LESSON →Pollard's Rho Factoring MethodGuide · MathematicsShanks's SQUFOF Factoring MethodGuide · MathematicsPollard's p−1 Method and Its RelativesGuide · MathematicsThe Continued Fraction Factoring MethodGuide · Mathematics