Reference: Elementary Number Theory, David M. Burton, 6th Edition.
In a fragment of a letter in all probability to Father Marin Mersenne in 1643, Fermat described a technique of his for factoring large numbers. This represented the first real improvement over the classical method of attempting to find a factor of n by dividing by all primes not exceeding . Fermat’s factorization scheme has at its heart the observation that the search for factors of an odd integer n (because powers of 2 are easily recognizable and may be removed at the outset, there is no loss in assuming that n is odd) is equivalent to obtaining integral solutions of x and y of the equation .
If n is the difference of two squares, then it is apparent that n can be factored as .
Conversely, when n has the factorization , with , then we may write
Moreover, because n is taken to be an odd integer, a and b are themselves odd, hence, and will be nonnegative integers.
One begins the search for possible x and y satisfying the equation or what is the same thing, the equation by first determining the smallest integer k for which . Now, look successively at the numbers , , , , until a value of is found making a square. The process cannot go on indefinitely, because we eventually arrive at the representation of n corresponding to the trivial factorization . If this point is reached without a square difference having been discovered earlier, then n has no other factors other than n and 1, in which case it is a prime.
Fermat used the procedure just described to factor in only 11 steps, as compared with making 4580 divisions by the odd primes up to 44021. This was probably a favourable case designed on purpose to show the chief virtue of this method: it does not require one to know all the primes less than to find factors of n.
To illustrate the application of Fermat’s method, let us factor the integer . From a table of squares, we find that ; thus it suffices to consider values of for those k that satisfy the inequality . The calculations begin as follows:
This last line exhibits the factorization , where both the factors are prime. In only seven steps, we have obtained the prime factorization of the number 119143. Of course, one does not always fare so luckily — it may take many steps before a difference turns out to be a square.
Fermat’s method is most effective when the two factors of n are of nearly the same magnitude, for in this case, a suitable square will appear quickly. To illustrate, let us suppose that is to be factored. The smallest square exceeding n is so that the sequence starts with:
. Hence, the factors of 23449 are
When examining the differences as possible squares, many values can be immediately excluded by inspection of the final digits. We know, for instance, that a square must end in one of the six digits 0,1,4,5,6,9. This allows us to exclude all the values in the above example, save for 1266, 1961, 4761. By calculating the squares of the integers from 0 to 99 modulo 100, we see further that, for a square, the last two digits are limited to the following 22 possibilities:
00; 01, 04; 09; 16; 21; 24; 25; 29; 36; 41; 44; 49; 56; 61; 64; 69; 76; 81; 84; 89; 96.
The integer 1266 can be eliminated from consideration in this way. Because 61 is among the last two digits allowable in a square, it is only necessary to look at the numbers 1961 and 4761; the former is not a square, but .
There is a generalization of Fermat’s factorization method that has been used with some success. Here, we look for distinct integers x and y such that is a multiple of n rather than n itself, that is,
Having obtained such integers (or, ) can be calculated by means of the Euclidean Algorithm. Clearly, d is a divisor of n, but is it a non-trivial divisor? In other words, do we have ?
In practice, n is usually the product of two primes p and q, with so that d is equal to 1, p, q, or pq. Now, the congruence translates into . Euclid's lemma tells us that p and q must divide one of the factors. If it happened that and , or expressed as a congruence . Also, and yield . By seeking integers x and y satisfying , where , these two situations are ruled out. The result of all this is that d is either p or q, giving us a non-trivial divisor of n.
Suppose we wish to factor the positive integer and happen to notice that . Then, we compute using the Euclidean Algorithm:
This leads to the prime divisor 11 of 2189. The other factor, namely 199, can be obtained by observing that
The reader might wonder how we ever arrived at a number, such as 579, whose square modulo 2189 also turns out to be a perfect square. In looking for squares close to multiples of 2189, it was observed that and which translates into and .
When these congruences are multiplied, they produce . Because the product , we ended up with the congruence .
The basis of our approach is to find several having the property that each is, modulo n, the product of small prime powers, and such that their product’s square is congruent to a perfect square.
When n has more than two prime factors, our factorization algorithm may still be applied; however, there is no guarantee that a particular solution of the congruence , with will result in a nontrivial divisor of n. Of course, the more solutions of this congruence that are available, the better the chance of finding the desired factors of n.
Our next example provides a considerably more efficient variant of this last factorization method. It was introduced by *Maurice Kraitchik* in the 1920’s and became the basis of such modern methods as the *quadratic sieve algorithm*.
Let be the integer to be factored. The first square just larger than n is . So. we begin by considering the sequence of numbers for . As before, our interest is in obtaining a set of values for which the product is a square, say . Then, , which might lead to a non-factor of n.
A short search reveals that ; ; ; or, written as congruences, ; ; . Multiplying these together results in the congruence: , that is, . But, we are unlucky with this square combination. Because only a trivial divisor of 12499 will be found. To be specific,
After further calculation, we notice that
which gives rise to the congruence .
This reduce modulo 12499 to and fortunately, . Calculating
produces the factorization
Problem to Practise:
Use Kraitchik’s method to factor the number 20437.