TOPICS
Search

Fermat's Factorization Method


Given a number n, Fermat's factorization methods look for integers x and y such that n=x^2-y^2. Then

 n=(x-y)(x+y)
(1)

and n is factored. A modified form of this observation leads to Dixon's factorization method and the quadratic sieve.

Every positive odd integer can be represented in the form n=x^2-y^2 by writing n=ab (with a>b) and noting that this gives

a=x+y
(2)
b=x-y.
(3)

Adding and subtracting,

a+b=2x
(4)
a-b=2y,
(5)

so solving for x and y gives

x=1/2(a+b)
(6)
y=1/2(a-b).
(7)

Therefore,

 x^2-y^2=1/4[(a+b)^2-(a-b)^2]=ab.
(8)

As the first trial for x, try x_1=[sqrt(n)], where [x] is the ceiling function. Then check if

 Deltax_1=x_1^2-n
(9)

is a square number. There are only 22 combinations of the last two digits which a square number can assume, so most combinations can be eliminated. If Deltax_1 is not a square number, then try

 x_2=x_1+1,
(10)

so

Deltax_2=x_2^2-n
(11)
=(x_1+1)^2-n
(12)
=x_1^2+2x_1+1-n
(13)
=Deltax_1+2x_1+1.
(14)

Continue with

Deltax_3=x_3^2-n
(15)
=(x_2+1)^2-n
(16)
=x_2^2+2x_2+1-n
(17)
=Deltax_2+2x_2+1
(18)
=Deltax_2+2x_1+3,
(19)

so subsequent differences are obtained simply by adding two.

Maurice Kraitchik sped up the algorithm by looking for x and y satisfying

 x^2=y^2 (mod n),
(20)

i.e., n|(x^2-y^2). This congruence has uninteresting solutions x=+/-y (mod n) and interesting solutions x≢+/-y (mod n). It turns out that if n is odd and divisible by at least two different primes, then at least half of the solutions to x^2=y^2 (mod n) with xy relatively prime to n are interesting. For such solutions, (n,x-y) is neither n nor 1 and is therefore a nontrivial factor of n (Pomerance 1996). This algorithm can be used to prove primality, but is not practical. In 1931, Lehmer and Powers discovered how to search for such pairs using continued fractions. This method was improved by Morrison and Brillhart (1975) into the continued fraction factorization algorithm, which was the fastest algorithm in use before the quadratic sieve factorization method was developed.


See also

Prime Factorization Algorithms, Smooth Number

Explore with Wolfram|Alpha

WolframAlpha

More things to try:

References

Lehmer, D. H. and Powers, R. E. "On Factoring Large Numbers." Bull. Amer. Math. Soc. 37, 770-776, 1931.McKee, J. "Speeding Fermat's Factoring Method." Math. Comput. 68, 1729-1738, 1999.Morrison, M. A. and Brillhart, J. "A Method of Factoring and the Factorization of F_7." Math. Comput. 29, 183-205, 1975.Pomerance, C. "A Tale of Two Sieves." Not. Amer. Math. Soc. 43, 1473-1485, 1996.

Referenced on Wolfram|Alpha

Fermat's Factorization Method

Cite this as:

Weisstein, Eric W. "Fermat's Factorization Method." From MathWorld--A Wolfram Web Resource. https://mathworld.wolfram.com/FermatsFactorizationMethod.html

Subject classifications