Fermat’s Little Theorem as a primality testing

Armed with an understanding a theorem of Fermat and a calculator or software that can handle large numbers, any interested individual can carry out exercises in primality testing – checking whether or not a number is prime. No advanced study in number theory is required. In this post, we explain how this is done. This post is built on two previous posts on detecting composite numbers and the fast powering algorithm.


Fermat’s Little Theorem

This is called the little theorem so that it is not confused with the other theorem of Fermat whose proof took three and a half centuries. The little theorem of Fermat describes a property that is possessed by all prime numbers. It says: if n is a prime number, then a certain property is true for the number n. Turning this around, if that property is not true for a number n, that number n must not be prime (i.e. it must be composite). This approach is a great way to prove the compositeness of a number. It is also a great way to gather evidence to support the primality of a number.

Two number are relatively prime to each other if they do not have any common factor that is greater than 1. For example, 28 is relatively prime to 15 even though neither one of them is prime. Similarly 17 and 35 have no factors in common. So they are relatively prime to each other.

The notation P \equiv Q \ (\text{mod} \ n) means that P and Q differ by a multiple of n, i.e. P-Q=n k for some integer k. The notation is read P is congruent to Q modulo n. The statement of Fermat’s theorem uses the notation a^{n-1} \equiv 1 \ (\text{mod} \ n). This would mean that a^{n-1}-1=n k for some integer k. This means that a^{n-1}-1 divisible by n.

Here’s the statement of Fermat’s little theorem.

    Fermat’s Little Theorem
    If n is a prime number, then a^{n-1} \equiv 1 \ (\text{mod} \ n) for all numbers a that are relatively prime to n.


Fermat’s Test

The theorem says that if n is a prime number, 2^{n-1} \equiv 1 \ (\text{mod} \ n) and 3^{n-1} \equiv 1 \ (\text{mod} \ n) and so on. The flip side is that if we can find a number a such that a^{n-1} \not \equiv 1 \ (\text{mod} \ n), then we have convincing proof that n is not a prime number.

When we need to determine whether or not a number n is prime, we pick a value a and calculate a^{n-1} \ (\text{mod} \ n). If the calculated result is not 1, then we have a convincing proof that the number n is not prime. If a^{n-1} \equiv 1 \ (\text{mod} \ n), then the number n is said to be a probable prime to base a. When n is a probable prime to base a, we also say that n passes the Fermat-a test. Fermat’s little theorem can then be restated as:

    Fermat’s Little Theorem
    If n is a prime number, then n passes Fermat-a test for all possible choices of a.

Example 1
This previous post discusses the following 204-digit number.


It can be verified that 2^{N-1} \equiv W \ (\text{mod} \ N) where W is not 1 and is the following 203-digit number.


The number N in this example fails the Fermat-2 test and is thus a composite number. The calculation of 2^{N-1} \equiv W \ (\text{mod} \ N) is carried out by using the fast powering algorithm.

Example 2
Consider M= 982447387. Is it prime?

Calculate a^{M-1} \ (\text{mod} \ M) for several values of a. let’s start with 2. We find that 2^{M-1} \equiv 1 \ (\text{mod} \ M). So we say that the number M is a probable prime to base 2. It is very likely that M is a prime. Let’s try a few more values of a. We have the following results.

    3^{M-1} \equiv 1 \ (\text{mod} \ M)

    5^{M-1} \equiv 1 \ (\text{mod} \ M)

    7^{M-1} \equiv 1 \ (\text{mod} \ M)

Now M is a probable prime to the bases 2, 3, 5, and 7. It turns out that there are actually composite numbers that are probable primes to bases 2, 3, 5 and 7. But they are extremely rare. So the number M is a probable prime (meaning that the chance that it is not a prime is very negligible). For good measure, we generate 5 random values of a. They are:


Calculating a^{M-1} \ (\text{mod} \ M) for all 5 values show that the number M passes the Fermat-a test for all 5 values of a. At this point we are willing to conclude that M is a prime. The conclusion is based on a probability argument and is not based on a mathematical proof.

Since the number M is a 9-digit number, we can actually conclude that it is a prime by looking it up in lists of primes that are published online. So this is a toy example that is meant for illustration only.



Example 1 shows that failing the Fermat-a test just for one value of a is enough to conclude that the number in question is not prime. In general, to test the primality of a number n, carry out the Fermat-a test for several values of a (preferably randomly chosen). If n fails the Fermat-a test for one of the values of a, then n is composite. On the other hand, if n passes the Fermat-a test for all the chosen values of a, then n is a probable prime.

The Fermat test is the “entry level” primality test. It is easy to use. It often works correctly. But it can produce incorrect results on rare occasions. For a more in depth discussion of the Fermat’s primality test, we refer you to an article in another blog.

\copyright \ 2015 \text{ by Dan Ma}