Elementary Number Theory
W. Edwin Clark
Department of Mathematics
University of South Florida
Revised June 2, 2003
Copyleft 2002 by W. Edwin Clark
Copyleft means that unrestricted redistribution and modification are permitted, provided that all copies and derivatives retain the same permissions.
Specifically no commerical use of these notes or any revisions thereof is permitted.
i
ii
Preface
Number theory is concerned with properties of the integers:
. . . , −4, −3, −2, −1, 0, 1, 2, 3, 4, . . . .
The great mathematician Carl Friedrich Gauss called this subject arithmetic
and of it he said:
Mathematics is the queen of sciences and arithmetic the queen of
mathematics.”
At first blush one might think that of all areas of mathematics certainly
arithmetic should be the simplest, but it is a surprisingly deep subject.
We assume that students have some familiarity with basic set theory, and
calculus. But very little of this nature will be needed. To a great extent the
book is self-contained. It requires only a certain amount of mathematical
maturity. And, hopefully, the student’s level of mathematical maturity will
increase as the course progresses.
Before the course is over students will be introduced to the symbolic
programming language Maple which is an excellent tool for exploring number
theoretic questions.
If you wish to see other books on number theory, take a look in the QA 241
area of the stacks in our library. One may also obtain much interesting and
current information about number theory from the internet. See particularly
the websites listed in the Bibliography. The websites by Chris Caldwell [2]
and by Eric Weisstein [11] are especially recommended. To see what is going
on at the frontier of the subject, you may take a look at some recent issues
of the Journal of Number Theory which you will find in our library.
iii
iv
PREFACE
Here are some examples of outstanding unsolved problems in number theory. Some of these will be discussed in this course. A solution to any one
of these problems would make you quite famous (at least among mathematicians). Many of these problems concern prime numbers. A prime number is
an integer greater than 1 whose only positive factors are 1 and the integer
itself.
1. (Goldbach’s Conjecture) Every even integer n > 2 is the sum of two
primes.
2. (Twin Prime Conjecture) There are infinitely many twin primes. [If p
and p + 2 are primes we say that p and p + 2 are twin primes.]
3. Are there infinitely many primes of the form n2 + 1?
4. Are there infinitely many primes of the form 2n − 1? Primes of this
form are called Mersenne primes.
n
5. Are there infinitely many primes of the form 22 + 1? Primes of this
form are called Fermat primes.
6. (3n+1 Conjecture) Consider the function f defined for positive integers
n as follows: f (n) = 3n + 1 if n is odd and f (n) = n/2 if n is even. The
conjecture is that the sequence f (n), f (f (n)), f (f (f (n))), · · · always
contains 1 no matter what the starting value of n is.
7. Are there infinitely many primes whose digits in base 10 are all ones?
Numbers whose digits are all ones are called repunits.
8. Are there infinitely many perfect numbers? [An integer is perfect if it
is the sum of its proper divisors.]
9. Is there a fast algorithm for factoring large integers? [A truly fast algoritm for factoring would have important implications for cryptography
and data security.]
v
Famous Quotations Related to Number Theory
Two quotations from G. H. Hardy:
In the first quotation Hardy is speaking of the famous Indian mathematician Ramanujan. This is the source of the often made statement that
Ramanujan knew each integer personally.
I remember once going to see him when he was lying ill at Putney.
I had ridden in taxi cab number 1729 and remarked that the
number seemed to me rather a dull one, and that I hoped it
was not an unfavorable omen. “No,” he replied, “it is a very
interesting number; it is the smallest number expressible as the
sum of two cubes in two different ways. ”
Pure mathematics is on the whole distinctly more useful than applied. For what is useful above all is technique, and mathematical
technique is taught mainly through pure mathematics.
Two quotations by Leopold Kronecker
God has made the integers, all the rest is the work of man.
The original quotation in German was Die ganze Zahl schuf der liebe Gott,
alles Übrige ist Menschenwerk. More literally, the translation is “ The whole
number, created the dear God, everything else is man’s work.” Note in
particular that Zahl is German for number. This is the reason that today we
use Z for the set of integers.
Number theorists are like lotus-eaters – having once tasted of this
food they can never give it up.
A quotation by contemporary number theorist William Stein:
A computer is to a number theorist, like a telescope is to an
astronomer. It would be a shame to teach an astronomy class
without touching a telescope; likewise, it would be a shame to
teach this class without telling you how to look at the integers
through the lens of a computer.
vi
PREFACE
Contents
Preface
iii
1 Basic Axioms for Z
1
2 Proof by Induction
3
3 Elementary Divisibility Properties
9
4 The Floor and Ceiling of a Real Number
13
5 The Division Algorithm
15
6 Greatest Common Divisor
19
7 The Euclidean Algorithm
23
8 Bezout’s Lemma
25
9 Blankinship’s Method
27
10 Prime Numbers
31
11 Unique Factorization
37
12 Fermat Primes and Mersenne Primes
43
13 The Functions σ and τ
47
14 Perfect Numbers and Mersenne Primes
53
vii
viii
CONTENTS
15 Congruences
57
16 Divisibility Tests for 2, 3, 5, 9, 11
65
17 Divisibility Tests for 7 and 13
69
18 More Properties of Congruences
71
19 Residue Classes
75
20 Zm and Complete Residue Systems
79
21 Addition and Multiplication in Zm
83
22 The Groups Um
87
23 Two Theorems of Euler and Fermat
93
24 Probabilistic Primality Tests
97
25 The Base b Representation of n
101
26 Computation of aN mod m
107
27 The RSA Scheme
113
A Rings and Groups
117
Chapter 1
Basic Axioms for Z
Since number theory is concerned with properties of the integers, we begin by
setting up some notation and reviewing some basic properties of the integers
that will be needed later:
N = {1, 2, 3, · · · } (the natural numbers or positive integers)
Z = {· · · , −3, −2, −1, 0, 1, 2, 3, · · · } (the integers)
n
| n, m ∈ Z and m = 0
(the rational numbers)
Q=
m
R = the real numbers
Note that N ⊂ Z ⊂ Q ⊂ R. I assume a knowledge of the basic rules of high
school algebra which apply to R and therefore to N, Z and Q. By this I
mean things like ab = ba and ab + ac = a(b + c). I will not list all of these
properties here. However, below I list some particularly important properties
of Z that will be needed. I call them axioms since we will not prove them in
this course.
Some Basic Axioms for Z
1. If a, b ∈ Z, then a + b, a − b and ab ∈ Z. (Z is closed under addition,
subtraction and multiplication.)
2. If a ∈ Z then there is no x ∈ Z such that a < x < a + 1.
3. If a, b ∈ Z and ab = 1, then either a = b = 1 or a = b = −1.
4. Laws of Exponents: For n, m in N and a, b in R we have
1
2
CHAPTER 1. BASIC AXIOMS FOR Z
(a) (an )m = anm
(b) (ab)n = an bn
(c) an am = an+m .
These rules hold for all n, m ∈ Z if a and b are not zero.
5. Properties of Inequalities: For a, b, c in R the following hold:
(a) (Transitivity) If a < b and b < c, then a < c.
(b) If a < b then a + c < b + c.
(c) If a < b and 0 < c then ac < bc.
(d) If a < b and c < 0 then bc < ac.
(e) (Trichotomy) Given a and b, one and only one of the following
holds:
a = b, a < b, b < a.
6. The Well-Ordering Property for N: Every non-empty subset of N
contains a least element.
7. The Principle of Mathematical Induction: Let P (n) be a statement concerning the integer variable n. Let n0 be any fixed integer.
P (n) is true for all integers n ≥ n0 if one can establish both of the
following statements:
(a) P (n) is true if n = n0 .
(b) Whenever P (n) is true for n0 ≤ n ≤ k then P (n) is true for
n = k + 1.
We use the usual conventions:
1. a ≤ b means a < b or a = b,
2. a > b means b < a, and
3. a ≥ b means b ≤ a.
Important Convention. Since in this course we will be almost exclusively concerned with integers we shall assume from now on (unless otherwise
stated) that all lower case roman letters a, b, . . . , z are integers.
Chapter 2
Proof by Induction
In this section, I list a number of statements that can be proved by use of
The Principle of Mathematical Induction. I will refer to this principle as
PMI or, simply, induction. A sample proof is given below. The rest will be
given in class hopefully by students.
A sample proof using induction: I will give two versions of this proof.
In the first proof I explain in detail how one uses the PMI. The second proof
is less pedagogical and is the type of proof I expect students to construct. I
call the statement I want to prove a proposition. It might also be called a
theorem, lemma or corollary depending on the situation.
Proposition 2.1. If n ≥ 5 then 2n > 5n.
Proof #1. Here we use The Principle of Mathematical Induction. Note that
PMI has two parts which we denote by PMI (a) and PMI (b).
We let P (n) be the statement 2n > 5n. For n0 we take 5. We could write
simply:
P (n) = 2n > 5n and n0 = 5.
Note that P (n) represents a statement, usually an inequality or an equation
but sometimes a more complicated assertion. Now if n = 4 then P (n) becomes the statement 24 > 5 · 4 which is false! But if n = 5, P (n) is the
statement 25 > 5 · 5 or 32 > 25 which is true and we have established PMI
(a).
3
4
CHAPTER 2. PROOF BY INDUCTION
Now to prove PMI (b) we begin by assuming that
P (n) is true for 5 ≤ n ≤ k.
That is, we assume
(2.1)
2n > 5n for 5 ≤ n ≤ k.
The assumption (2.1) is called the induction hypothesis. We want to
use it to prove that P (n) holds when n = k + 1. So here’s what we do. By
(2.1) letting n = k we have
2k > 5k.
Multiply both sides by two and we get
(2.2)
2k+1 > 10k.
Note that we are trying to prove 2k+1 > 5(k + 1). Now 5(k + 1) = 5k + 5 so
if we can show 10k ≥ 5k + 5 we can use (2.2) to complete the proof.
Now 10k = 5k + 5k and k ≥ 5 by (2.1) so k ≥ 1 and hence 5k ≥ 5.
Therefore
10k = 5k + 5k ≥ 5k + 5 = 5(k + 1).
Thus
2k+1 > 10k ≥ 5(k + 1)
so
(2.3)
2k+1 > 5(k + 1).
that is, P (n) holds when n = k + 1. So assuming the induction hypothesis
(2.1) we have proved (2.3). Thus we have established PMI (b).
We have established that parts (a) and (b) of PMI hold for this particular
P (n) and n0 . So the PMI tells us that P (n) holds for n ≥ 5. That is, 2n > 5n
holds for n ≥ 5.
I now give a more streamlined proof.
Proposition 2.2. If n ≥ 5 then 2n > 5n.
5
Proof #2. We prove the proposition by induction on the variable n.
If n = 5 we have 25 > 5 · 5 or 32 > 25 which is true.
Assume
2n > 5n
for 5 ≤ n ≤ k
(the induction hypothesis).
Taking n = k we have
2k > 5k.
Multiplying both sides by 2 gives
2k+1 > 10k.
Now 10k = 5k + 5k and k ≥ 5 so k ≥ 1 and therefore 5k ≥ 5. Hence
10k = 5k + 5k ≥ 5k + 5 = 5(k + 1).
It follows that
2k+1 > 10k ≥ 5(k + 1)
and therefore
2k+1 > 5(k + 1).
Hence by PMI we conclude that 2n > 5n for n ≥ 5.
The 8 major parts of a proof by induction:
1. First state what proposition you are going to prove. Precede the statement by Proposition, Theorem, Lemma, Corollary, Fact, or To Prove:.
2. Write the Proof or Pf. at the very beginning of your proof.
3. Say that you are going to use induction (some proofs do not use induction!) and if it is not obvious from the statement of the proposition
identify clearly P (n), the statement to be proved, the variable n and
the starting value n0 . Even though this is usually clear, sometimes
these things may not be obvious. And, of course, the variable need not
be n. It could be represented in many different ways.
4. Prove that P (n) holds when n = n0 .
5. Assume that P (n) holds for n0 ≤ n ≤ k. This assumption will be
referred to as the induction hypothesis.
6
CHAPTER 2. PROOF BY INDUCTION
6. Use the induction hypothesis and anything else that is known to be
true to prove that P (n) holds when n = k + 1.
7. Conclude that since the conditions of the PMI have been met then
P (n) holds for n ≥ n0 .
8. Write QED or
or // or something to indicate that you have completed your proof.
Exercise 2.1. Prove that 2n > 6n for n ≥ 5.
Exercise 2.2. Prove that 1 + 2 + · · · + n =
n(n + 1)
for n ≥ 1.
2
Exercise 2.3. Prove that if 0 < a < b then 0 < an < bn for all n ∈ N.
Exercise 2.4. Prove that n! < nn for n ≥ 2.
Exercise 2.5. Prove that if a and r are real numbers and r = 1, then for
n≥1
a (r n+1 − 1)
a + ar + ar 2 + · · · + ar n =
.
r−1
This can be written as follows
a(r n+1 − 1) = (r − 1)(a + ar + ar 2 + · · · + ar n ).
And important special case of which is
(r n+1 − 1) = (r − 1)(1 + r + r 2 + · · · + r n ).
Exercise 2.6. Prove that 1 + 2 + 22 + · · · + 2n = 2n+1 − 1 for n ≥ 1.
Exercise 2.7. Prove that 111
· · · 1 =
n 1’s
10n − 1
for n ≥ 1.
9
Exercise 2.8. Prove that 12 + 22 + 32 + · · · + n2 =
n(n + 1)(2n + 1)
if n ≥ 1.
6
Exercise 2.9. Prove that if n ≥ 12 then n can be written as a sum of 4’s
and 5’s. For example, 23 = 5 + 5 + 5 + 4 + 4 = 3 · 5 + 2 · 4. [Hint. In this
case it will help to do the cases n = 12, 13, 14, and 15 separately. Then use
induction to handle n ≥ 16.]
7
Exercise 2.10. (a) For n ≥ 1, the triangular number tn is the number of
dots in a triangular array that has n rows with i dots in the i-th row. Find
a formula for tn , n ≥ 1. (b) Suppose that for each n ≥ 1. Let sn be the
number of dots in a square array that has n rows with n dots in each row.
Find a formula for sn . The numbers sn are usually called squares.
Exercise 2.11. Find the first 10 triangular numbers and the first 10 squares.
Which of the triangular numbers in your list are also squares? Can you find
the next triangular number which is a square?
Exercise 2.12. Some propositions that can be proved by induction can also
be proved without induction. Prove Exercises 2.2 and 2.5 without induction.
[Hints: For 2.2 write s = 1+2+· · ·+(n−1)+n. Directly under this equation
write s = n+(n−1)+· · ·+2+1. Add these equations to obtain 2s = n(n+1).
Solve for s. For Exercise 2.5 write p = a+ar +ar 2 +· · ·+ar n . Then multiply
both sides of this equation by r to get a new equation with rp as the left hand
side. Subtract these two equation to obtain pr − p = ar n+1 − a. Now solve
for p.]
8
CHAPTER 2. PROOF BY INDUCTION
Chapter 3
Elementary Divisibility
Properties
Definition 3.1. d | n means there is an integer k such that n = dk. d ∤ n
means that d | n is false.
Note that a | b = a/b. Recall that a/b represents the fraction ab .
The expression d | n may be read in any of the following ways:
1. d divides n.
2. d is a divisor of n.
3. d is a factor of n.
4. n is a multiple of d.
Thus, the following five statements are equivalent, that is, they are all
different ways of saying the same thing.
1. 2 | 6.
2. 2 divides 6.
3. 2 is a divisor of 6.
4. 2 is a factor of 6.
5. 6 is a multiple of 2.
9
10
CHAPTER 3. ELEMENTARY DIVISIBILITY PROPERTIES
Definitions will play an important role in this course. Students should learn
all definitions and be able to state them precisely. An alternative way to
state the definition of d | n is as follows.
Definition 3.2. d | n ⇐⇒ n = dk for some k.
or maybe
Definition 3.3. d | n iff n = dk for some k.
Keep in mind that we are assuming that all letters a, b, . . . , z represent integers. Otherwise we would have to add this fact to our definitions. One might
also see the following definition sometimes.
Definition 3.4. d | n if n = dk for some k.
Note that ⇐⇒ , iff, and if and only if, all mean the same thing. In definitions
such as Definition 3.4 if is interpreted to mean if and only if. It should be
emphasized that all the above definitions are acceptable. Take your pick.
But be careful about making up your own definitions.
11
Theorem 3.1 (Divisibility Properties). If n, m, and d are integers then
the following statements hold:
1. n | n (everything divides itself )
2. d | n and n | m =⇒ d | m (transitivity)
3. d | n and d | m =⇒ d | an + bm for all a and b (linearity property)
4. d | n =⇒ ad | an (multiplication property)
5. ad | an and a = 0 =⇒ d | n (cancellation property)
6. 1 | n (one divides everything)
7. n | 1 =⇒ n = ±1 (1 and −1 are the only divisors of 1.)
8. d | 0 (everything divides zero)
9. 0 | n =⇒ n = 0 (zero divides only zero)
10. If d and n are positive and d | n then d ≤ n (comparison property)
Exercise 3.1. Prove each of the properties 1 through 10 in Theorem 3.1.
Definition 3.5. If c = as + bt for some integers s and t we say that c is a
linear combination of a and b.
Thus, statement 3 in Theorem 3.1 says that if d divides a and b, then d
divides all linear combinations of a and b. In particular, d divides a + b and
a − b. This will turn out to be a useful fact.
Exercise 3.2. Prove that if d | a and d | b then d | a − b.
Exercise 3.3. Prove that if a ∈ Z then the only positive divisor of both a
and a + 1 is 1.
12
CHAPTER 3. ELEMENTARY DIVISIBILITY PROPERTIES
Chapter 4
The Floor and Ceiling of a Real
Number
Here we define the floor, a.k.a., the greatest integer, and the ceiling, a.k.a.,
the least integer, functions. Kenneth Iverson introduced this notation and
the terms floor and ceiling in the early 1960s — according to Donald Knuth
[6] who has done a lot to popularize the notation. Now this notation is
standard in most areas of mathematics.
Definition 4.1. If x is any real number we define
⌊x⌋ = the greatest integer less than or equal to x
⌈x⌉ = the least integer greater than or equal to x
⌊x⌋ is called the floor of x and ⌈x⌉ is called the ceiling of x The floor ⌊x⌋ is
sometimes denoted [x] and called the greatest integer function. But I prefer
the notation ⌊x⌋. Here are a few simple examples:
1. ⌊3.1⌋ = 3 and ⌈3.1⌉ = 4
2. ⌊3⌋ = 3 and ⌈3⌉ = 3
3. ⌊−3.1⌋ = -4 and ⌈−3.1⌉ = -3
From now on we mostly concentrate on the floor ⌊x⌋. For a more detailed
treatment of both the floor and ceiling see the book Concrete Mathematics [5]. According to the definition of ⌊x⌋ we have
(4.1)
⌊x⌋ = max{n ∈ Z | n ≤ x}
13
14
CHAPTER 4. THE FLOOR AND CEILING OF A REAL NUMBER
Note also that if n is an integer we have:
(4.2)
n = ⌊x⌋ ⇐⇒ n ≤ x < n + 1.
From this it is clear that
⌊x⌋ ≤ x holds for all x,
and
⌊x⌋ = x ⇐⇒ x ∈ Z.
We need the following lemma to prove our next theorem.
Lemma 4.1. For all x ∈ R
x − 1 < ⌊x⌋ ≤ x.
Proof. Let n = ⌊x⌋. Then by (4.2) we have n ≤ x < n + 1. This gives
immediately that ⌊x⌋ ≤ x, as already noted above. It also gives x < n + 1
which implies that x − 1 < n, that is, x − 1 < ⌊x⌋.
Exercise 4.1. Sketch the graph of the function f (x) = ⌊x⌋ for −3 ≤ x ≤ 3.
√
√
√
√
Exercise 4.2. Find ⌊π⌋, ⌈π⌉, ⌊ 2⌋, ⌈ 2⌉, ⌊−π⌋, ⌈−π⌉, ⌊− 2⌋, and ⌈− 2⌉.
Definition 4.2. Recall that the decimal representation of a positive integer a is given by a = an−1 an−2 · · · a1 a0 where
(4.3)
a = an−1 10n−1 + an−2 10n−2 + · · · + a1 10 + a0
and the digits an−1 , an−2 , . . . , a1 , a0 are in the set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} with
an−1 = 0. In this case we say that the integer a is an n digit number or
that a is n digits long.
Exercise 4.3. Prove that a ∈ N is an n digit number where n = ⌊log(a)⌋+1.
Here log means logarithm to base 10. Hint: Show that if ( 4.3) holds with
an−1 = 0 then 10n−1 ≤ a < 10n . Then apply the log to all terms of this
inequality.
Exercise 4.4. Use the previous exercise to determine the number of digits
in the decimal representation of the number 23321928 . Recall that log(xy ) =
y log(x) when x and y are positive.
Chapter 5
The Division Algorithm
The goal of this section is to prove the following important result.
Theorem 5.1 (The Division Algorithm). If a and b are integers and
b > 0 then there exist unique integers q and r satisfying the two conditions:
(5.1)
a = bq + r
and 0 ≤ r < b.
In this situation q is called the quotient and r is called the remainder
when a is divided by b. Note that there are two parts to this result. One
part is the EXISTENCE of integers q and r satisfying (5.1) and the second
part is the UNIQUENESS of the integers q and r satisfying (5.1).
Proof. Given b > 0 and any a define
q =
a
b
r = a − bq
Cleary we have a = bq + r. But we need to prove that 0 ≤ r < b. By
Lemma 4.1 we have
a a
a
≤ .
−1<
b
b
b
Now multiply all terms of this inequality by −b. Since b is positive, −b is
negative so the direction of the inequality is reversed, giving us:
a
b − a > −b
≥ −a.
b
15
16
CHAPTER 5. THE DIVISION ALGORITHM
If we add a to all sides of the inequality and replace ⌊a/b⌋ by q we obtain
b > a − bq ≥ 0.
Since r = a − bq this gives us the desired result 0 ≤ r < b.
We still have to prove that q and r are uniquely determined. To do this
we assume that
a = bq1 + r1 and 0 ≤ r1 < b,
and
a = bq2 + r2
and 0 ≤ r2 < b.
We must show that r1 = r2 and q1 = q2 . If r1 = r2 without loss of generality
we can assume that r2 > r1 . Subtracting these two equations we obtain
0 = a − a = (bq1 + r1 ) − (bq2 + r2 ) = b(q1 − q2 ) + (r1 − r2 ).
This implies that
(5.2)
r2 − r1 = b(q1 − q2 ).
This implies that b | r2 −r1 . By Theorem 3.1(10) this implies that b ≤ r2 −r1 .
But since
0 ≤ r1 < r2 < b
we have r2 − r1 < b. This contradicts b ≤ r2 − r1 . So we must conclude that
r1 = r2 . Now from (5.2) we have 0 = b(q1 − q2 ). Since b > 0 this tells us that
q1 − q2 = 0, that is, q1 = q2 . This completes the proof of the uniqueness of r
and q in (5.1).
Definition 5.1. An integer n is even if n = 2k for some k, and is odd if
n = 2k + 1 for some k.
Exercise 5.1. Prove using the Division Algorithm that every integer is either
even or odd, but never both.
Definition 5.2. By the parity of an integer we mean whether it is even or
odd.
Exercise 5.2. Prove n and n2 always have the same parity. That is, n is
even if and only if n2 is even.
17
Exercise 5.3. Find the q and r of the Division Algorithm for the following
values of a and b:
1. Let b = 3 and a = 0, 1, −1, 10, −10.
2. Let b = 345 and a = 0, −1, 1, 344, 7863, −7863.
Exercise 5.4. Devise a method for solving problems like those in the previous exercise for large positive values of a and b using a calculator. Illustrate
by using a = 123456 and b = 123. Hint: If a = bq + r and 0 ≤ r < b then
a
= q + rb and so rb is the fractional part of the decimal number ab . So q is
b
what you get when you drop the fractional part. Once you have q you can
solve a = bq + r for r.
Sometimes a problem in number theory can be solved by dividing the integers
into various classes depending on their remainders when divided by some
number b. For example, this is helpful in solving the following two problems.
Exercise 5.5. Show that for all integers n the number n3 − n always has 3
as a factor. (Consider the three cases: n = 3k, n = 3k + 1, n = 3k + 2.)
Exercise 5.6. Show that the product of any three consecutive integers has
6 as a factor. (How many cases should you use here?)
Definition 5.3. For b > 0 define a mod b = r where r is the remainder given
by the Division Algorithm when a is divided by b, that is, a = bq + r and
0 ≤ r < b.
For example 23 mod 7 = 2 since 23 = 7 · 3 + 2 and −4 mod 5 = 1 since
−4 = 5 · (−1) + 1.
Note that some calculators and most programming languages have a function often denoted by MOD(a, b) or mod(a, b) whose value is what we have
just defined as a mod b. When this is the case the values r and q in the
Division Algorithm for given a and b > 0 are given by
r = a mod b
a − (a mod b)
q=
b
If also the floor function is available we have
r = a mod b
q = ⌊a/b⌋
18
CHAPTER 5. THE DIVISION ALGORITHM
Exercise 5.7. Prove that if b > 0 then b | a ⇐⇒ a mod b = 0.
Exercise 5.8. Prove that if b = 0 then b | a ⇐⇒ a/b ∈ Z.
Exercise 5.9. Calculate the following:
1. 0 mod 10
2. 123 mod 10
3. 10 mod 123
4. 457 mod 33
5. (−7) mod 3
6. (−3) mod 7
7. (−5) mod 5
Exercise 5.10. Use the Division Algorithm to prove the following more
general version: If b = 0 then for any a there exists unique q and r such that
(5.3)
a = bq + r
and 0 ≤ r < | b |.
Hint: Recall that | b | is b if b ≥ 0 and is −b if b < 0. We know the statement
holds if b > 0 so we only need to consider the case when b < 0. If b is
negative then −b is positive, so we can apply the Division Algorithm to a and
−b. Note that a as well as q can be any integers. This exercise may come in
handy later.
Chapter 6
Greatest Common Divisor
Definition 6.1. Let a, b ∈ Z. If a = 0 or b = 0, we define gcd(a, b) to be the
largest integer d such that d | a and d | b. We define gcd(0, 0) = 0.
Discussion. If e | a and e | b we call e a common divisor of a and b. Let
C(a, b) = {e : e | a and e | b},
that is, C(a, b) is the set of all common divisors of a and b. Note that since
everything divides 0
C(0, 0) = Z
so there is no largest common divisor of 0 with 0. This is why we must define
gcd(0, 0) = 0.
Example 6.1.
C(18, 30) = {−1, 1, −2, 2, −3, 3, −6, 6}.
So gcd(18, 30) = 6.
Lemma 6.1. If e | a then −e | a.
Proof. If e | a then a = ek for some k. Then a = (−e)(−k). Since −e and
−k are also integers −e | a.
Lemma 6.2. If a = 0, the largest positive integer that divides a is |a|.
19
20
CHAPTER 6. GREATEST COMMON DIVISOR
Proof. Recall that
|a| =
a if a ≥ 0
−a if a < 0.
First note that |a| actually divides a: If a > 0, since we know a | a we have
|a| | a. If a < 0, |a| = −a. In this case a = (−a)(−1) = |a|(−1) so |a| is a
factor of a. So, in either case |a| divides a, and in either case |a| > 0, since
a = 0.
Now suppose d | a and d is positive. Then a = dk some k so −a = d(−k)
for some k. So d | |a|. So by Theorem 3.1 (10) we have d ≤ |a|.
The following lemma shows that in computing gcd’s we may restrict ourselves to the case where both integers are positive.
Lemma 6.3. gcd(a, b) = gcd(|a|, |b|).
Proof. If a = 0 and b = 0, we have |a| = a and |b| = b. So gcd(a, b) =
gcd(|a|, |b|). Suppose one of a or b is not 0. Note that d | a ⇔ d | |a|. See
Exercise 6.1. It follows that
C(a, b) = C(|a|, |b|).
So the largest common divisor of a and b is also the largest common divisor
of |a| and |b|.
Exercise 6.1. Prove that
d | a ⇔ d | |a|
[Hint: recall that |a| = a if a ≥ 0 and |a| = −a if a < 0. So you need to
consider two cases.]
Lemma 6.4. gcd(a, b) = gcd(b, a).
Proof. Clearly C(a, b) = C(b, a). It follows that the largest integer in C(a, b)
is the largest integer in C(b, a), that is, gcd(a, b) = gcd(b, a).
Lemma 6.5. If a = 0 or b = 0, then gcd(a, b) exists and satisfies
0 < gcd(a, b) ≤ min{|a|, |b|}.
21
Proof. Note that gcd(a, b) is the largest integer in the set C(a, b) of common
division of a and b. Since 1 | a and 1 | b we know that 1 ∈ C(a, b). So
the largest common divisor must be at least 1 and is therefore positive. On
the other hand d ∈ C(a, b) ⇒ d | |a| and d | |b| so d is no larger than |a|
and no larger than |b|. So d is at most the smaller of |a| and |b|. Hence
gcd(a, b) ≤ min{|a|, |b|}.
Example 6.2. From the above lemmas we have
gcd(48, 732) = gcd(−48, 732)
= gcd(−48, −732)
= gcd(48, −732).
We also know that
0 < gcd(48, 732) ≤ 48.
Since if d = gcd(48, 732), then d | 48, to find d we may check only which
positive divisors of 48 also divide 732.
Exercise 6.2. Find gcd(48, 732) using Example 6.2.
Exercise 6.3. Find gcd(a, b) for each of the following values of a and b:
(1) a = −b, b = 14
(2) a = −1, b = 78654
(3) a = 0, b = −78
(4) a = 2, b = −786541
22
CHAPTER 6. GREATEST COMMON DIVISOR
Chapter 7
The Euclidean Algorithm
Unlike the Division Algorithm, the Euclidean Algorithm really is an algorithm. It provides a method to compute gcd(a, b). Since as already noted
gcd(0, 0) = 0, gcd(a, b) = gcd(|a|, |b|), and gcd(a, b) = gcd(b, a), it suffices to
give a method to compute gcd(a, b) when a ≥ b ≥ 0.
Lemma 7.1. If a > 0, then gcd(a, 0) = a.
Proof. Since every integer divides 0, C(a, 0) is just the set of divisors of a.
By Lemma 6.2 the largest divisor of a is |a|. Since a > 0, |a| = a. This shows
that gcd(a, 0) = a.
Remark 7.1. So we are now reduced to the problem of finding gcd(a, b) when
a ≥ b > 0.
Exercise 7.1. Prove that if a > 0 then gcd(a, a) = a.
Now having done Exercise 7.1 we only need to consider the case a > b > 0.
Lemma 7.2. Let a > b > 0. If a = bq + r, then
gcd(a, b) = gcd(b, r).
Proof. It suffices to show that C(a, b) = C(b, r), that is, the common divisors
of a and b are the same as the common divisors of b and r. To show this
first let d | a and d | b. Note that r = a − bq, which is a linear combination
of a and b. So by Theorem 3.1(3) d | r. Thus d | b and d | r. Next assume
d | b and d | r. Using Theorem 3.1(3) again and the fact that a = bq + r is
a linear combination of b and r, we have d | a. So d | a and d | b. We have
thus shown that C(a, b) = C(b, r). So gcd(a, b) = gcd(b, r).
23
24
CHAPTER 7. THE EUCLIDEAN ALGORITHM
Remark 7.2. The Euclidean Algorithm is the process of using Lemmas 7.2
and 7.1 to compute gcd(a, b) when a > b > 0.
Rather than give a precise statement of the algorithm I will give an example to show how it goes.
Example 7.1. Let’s compute gcd(803, 154).
gcd(803, 154)
gcd(154, 33)
gcd(33, 22)
gcd(22, 11)
gcd(11, 0)
=
=
=
=
=
gcd(154, 33) since 803 = 154 · 5 + 33
gcd(33, 22) since 154 = 33 · 4 + 22
gcd(22, 11) since 33 = 22 · 1 + 11
gcd(11, 0) since 22 = 11 · 1 + 0
11.
Hence gcd(803, 154) = 11.
Remark 7.3. Note that we have formed the gcd of 803 and 154 without factoring 803 and 154. This method is generally much faster than factoring and
can find gcd’s when factoring is not feasible.
Exercise 7.2. Let a > b > 0. Show that gcd(a, b) = gcd(b, a mod b).
Remark 7.4. So if your calculator can compute a mod b you may use it when
executing the Euclidean Algorithm.
Exercise 7.3. Find gcd(a, b) using the Euclidean Algorithm for each of the
values below:
(1) a = 37, b = 60
(2) a = 793, b = 3172
(3) a = 25174, b = 42722
(4) a = 377, b = 233
Chapter 8
Bezout’s Lemma
Lemma 8.1 (Bezout’s Lemma). For all integers a and b there exist integers s and t such that
gcd(a, b) = sa + tb.
Proof. If a = b = 0 then s and t may be anything since
gcd(0, 0) = 0 = s · 0 + t · 0.
So we may assume that a = 0 or b = 0. Let
J = {na + mb : n, m ∈ Z}.
Note that J contains a, −a, b and −b since
a = 1·a+0·b
−a = (−1) · a + 0 · b
b= 0·a+1·b
−b = 0 · a + (−1) · b.
Since a = 0 or b = 0 one of the elements a, −a, b, −b is positive. So we can
say that J contains some positive integers. Let S denote the set of positive
integers in J. That is,
S = {na + mb : na + mb > 0, n, m ∈ Z}.
By the Well-Ordering Property for N, S contains a smallest positive integer, call it d. Let’s show that d = gcd(a, b). Note that since d ∈ S we have
25
26
CHAPTER 8. BEZOUT’S LEMMA
d = sa+tb for some integers, s and t. Note also that d > 0. Let e = gcd(a, b).
Then e | a and e | b, so by Theorem 3.1 (3) e | sa + tb, that is e | d. Since e
and d are positive, by Theorem 3.1 (10) we have e ≤ d. So if we can show
that d is a common divisor of a and b we will know that e = d. To show d | a
using the Division Algorithm we write a = dq + r where 0 ≤ r < d. Now
r = a − dq
= a − (sa + tb)q
= (1 − sq)a + (−tq)b.
Hence r ∈ J. If r > 0 then r ∈ S. But this cannot be since r < d and d is the
smallest integer in S. So we must have r = 0. That is, a = dq. Hence d | a.
By a similar argument we can show that d | b. Thus, d is indeed a common
divisor of a and b since d ≥ e = gcd(a, b), we must have d = gcd(a, b). As
noted already d = sa + tb, so the theorem is proved.
Example 8.1. 1 = gcd(2, 3) and we have 1 = (−1)2 + 1 · 3. Also we have
1 = 2·2+(−1)3. So the numbers s and t in Bezout’s Lemma are not uniquely
determined. In fact, as we will see later there are infinitely many choices for
s and t for each pair a, b.
Remark 8.1. The above proof is an existence theorem. It asserts the existence
of s and t, but does not provide a way to actually find s and t. Also the proof
does not give any clue about how to go about calculating s and t. We will
give an algorithm in the next chapter for finding s and t.
Chapter 9
Blankinship’s Method
In an article in the August-September 1963 issue of the American Mathematical Monthly, W.A. Blankinship1 gave a simple method to produce the
integers s and t in Bezout’s Lemma and at the same time produce gcd(a, b):
Given a > b > 0 we start with the array
a 1 0
b 0 1
Then we continue to add multiples of one row to another row, alternating
choice of rows until we reach an array of the form
0 x1 x2
d y1 y2
or
d y1 y2
0 x1 x2
Then d = gcd(a, b) = y1 a + y2 b. [The goal is to get a 0 in the first column.]
Examples 9.1. First take a = 35, b = 15.
35 1 0
15 0 1
Note 35 = 15 · 2 + 5, hence
35 + 15(−2) = 5.
1
Thanks to Chris Miller for bringing this method to my attention.
27
28
CHAPTER 9. BLANKINSHIP’S METHOD
So we multiply row 2 by −2 and add it to row 1, getting
5 1 −2
15 0 1
Now 3 · 5 = 15 or 15 + (−3)5 = 0, so we multiply row 1 by −3 and add it to
row 2, getting
5 1 −2
.
0 −3 7
Now we can say that
gcd(35, 15) = 5
and
5 = 1 · 35 + (−2) · 15.
Let’s now consider a more complicated example: Take a = 1876, b = 365.
1876 1 0
365 0 1
Now 1876 = 365 · 5 + 51 so we add −5 times the second row to the first row,
getting:
51 1 −5
365 0 1
Now 365 = 51 · 7 + 8, so we add −7 times row 1 to row 2, getting:
51 1 −5
8 −7 36
Now 51 = 8 · 6 + 3, so we add −6 times row 2 to row 1, getting:
3 43 −221
8 −7 36
Now 8 = 3 · 2 + 2, so we add −2 times row 1 to row 2, getting:
3 43 −221
2 −93 478
Then 3 = 2 · 1 + 1, so we add −1 times row 2 to row 1, getting:
1 136 −699
2 −93 478
29
Finally, 2 = 1 · 2 so if we add −2 times row 1 to row 2 we get:
(∗)
This tells us that
1 136 −699
.
0 −365 1876
gcd(1876, 365) = 1
and
(∗∗)
1 = 136 · 1876 + (−699)365.
Note that it was not necessary to compute the last two entries −365 and
1876 in (∗). It is a good idea however to check that equation (∗∗) holds. In
this case we have:
136 · 1876 = 255136
(−699) · 365 = −255135
1
So it is correct.
Why Blankinship’s Method works: Note that just looking at what
happens in the first column you see that we are just doing the Euclidean
Algorithm, so when one element in column 1 is 0, the other is, in fact, the
gcd. Note that at the start we have
a 1 0
b 0 1
and
a = 1·a+0·b
b = 0 · a + 1 · b.
One can show that at every intermediate step
a1 x1 x2
b1 y1 y2
we always have
a1 = x1 a + x2 b
b1 = y1 a + y2 b,
and the result follows. I will omit the details.
30
CHAPTER 9. BLANKINSHIP’S METHOD
Exercise 9.1. Use Blankinship’s method to compute the s and t in Bezout’s
Lemma for each of the following values of a and b.
(1) a = 267, b = 112
(2) a = 216, b = 135
(3) a = 11312, b = 11321
Exercise 9.2. Show that if 1 = as + bt then gcd(a, b) = 1.
Exercise 9.3. Find integers a, b, d, s, t such that all of the following hold
(1) a > 0, b > 0,
(2) d = sa + tb, and
(3) d = gcd(a, b).
Note that d in Exercise 9.3 cannot be 1 by Exercise 9.2.
Chapter 10
Prime Numbers
Definition 10.1. An integer p is prime if p ≥ 2 and the only positive
divisors of p are 1 and p. An integer n is composite if n ≥ 2 and n is not
prime.
Remark 10.1. The number 1 is neither prime nor composite.
Lemma 10.1. An integer n ≥ 2 is composite if and only if there are integers
a and b such that n = ab, 1 < a < n, and 1 < b < n.
Proof. Let n ≥ 2. If n is composite there is a positive integer a such that
a = 1, a = n and a | n. This means that n = ab for some b. Since n and a
are positive so is b. Hence 1 ≤ a and 1 ≤ b. By Theorem 3.1(10) a ≤ n and
b ≤ n. Since a = 1 and a = n we have 1 < a < n. If b = 1 then a = n, which
is not possible, so b = 1. If b = n then a = 1, which is also not possible. So
1 < b < n. The converse is obvious.
Lemma 10.2. If n > 1, there is a prime p such that p | n.
Proof. Assume there is some integer n > 1 which has no prime divisor. Let
S denote the set of all such integers. By the Well-Ordering Property there
is a smallest such integer, call it m. Now m > 1 and has no prime divisor.
So m cannot be prime. Hence m is composite. Therefore by Lemma 10.1
m = ab,
1 < a < m,
1 < b < m.
Since 1 < a < m then a is not in the set S. So a must have a prime divisor,
call it p. Then p | a and a | m so by Theorem 3.1, p | m. This contradicts
the fact that m has no prime divisor. So the set S must be empty and this
proves the lemma.
31
32
CHAPTER 10. PRIME NUMBERS
Theorem 10.1 (Euclid’s Theorem). There are infinitely many prime
numbers.
Proof. Assume, by way of contradiction, that there are only a finite number
of prime numbers, say:
p1 , p2 , . . . , pn .
Define
N = p1 p2 · · · pn + 1.
Since p1 ≥ 2, clearly N ≥ 3. So by Lemma 10.2 N has a prime divisor p. By
assumption p = pi for some i = 1, . . . , n. Let a = p1 · · · pn . Note that
a = pi (p1 p2 · · · pi−1 pi+1 · · · pn ) ,
so pi | a. Now N = a + 1 and by assumption pi | a + 1. So by Exercise 3.2
pi | (a + 1) − a, that is pi | 1. By Basic Axiom 3 in Chapter 1 this implies
that pi = 1. This contradicts the fact that primes are > 1. It follows that
the assumption that there are only finitely many primes is not true.
Exercise 10.1. Use the idea of the above proof to show that if q1 , q2 , . . . , qn
are primes there is a prime q ∈
/ {q1 , . . . , qn }. Hint: Take N = q1 · · · qn + 1. By
Lemma 10.2 there is a prime q such that q | N. Prove that q ∈
/ {q1 , . . . , qn }.
Exercise 10.2. Let p1 = 2, p2 = 3, p3 = 5, . . . and, in general, pi = the i-th
prime. Prove or disprove that
p1 p2 · · · pn + 1
is prime for all n ≥ 1. [Hint: If n = 1 we have 2 + 1 = 3 is prime. If n = 2
we have 2 · 3 + 1 = 7 is prime. If n = 3 we have 2 · 3 · 5 + 1 = 31 is prime.
Try the next few values of n. You may want to use the next theorem to check
primality.]
√
Theorem 10.2. If n > 1 is composite then n has a prime divisor p ≤ n.
Proof. Let n > 1 be composite. √
Then n = ab where 1√
< a < n and√1 < b < n.
I claim that
Hence
√ one
√ of a or b is ≤ n. If not then a > n and b > n. √
n =√
ab > n n = n. √This implies n > n, a contradiction. So a ≤ n or
b ≤ n. Suppose a ≤ n. Since 1 < a, by Lemma 10.2 there is a prime p
such that p | a. Hence, by Theorem 3.1 √
since a | n we have p | n. Also by
Theorem 3.1 since p | a we have p ≤ a ≤ n.
33
Remark 10.2. We can use Theorem 10.2 to help decide whether or not an
integer is prime: To check whether
or not n > 1 is prime we need only try
√
to divide it by all primes p ≤ n. If none of these primes divides n then n
must be prime.
√
√
Example 10.1. Consider the number 97. Note that 97 < 100 = 10.
The primes ≤ 10 are 2, 3, 5, and 7. One easily checks that 97 mod 2 = 1,
97 mod 3 = 1, 97 mod 5 = 2, 97 mod 7 = 6. So none of the primes 2, 3, 5, 7
divide 97 and 97 is prime by Theorem 10.2.
Exercise 10.3. By using Theorem 10.2, as in the above example, determine
the primality1 of the following integers:
143,
221,
199,
223,
3521.
Definition 10.2. Let x ∈ R, x > 0. π(x) denotes the number of primes p
such that p ≤ x.
For example, since the only primes p ≤ 10 are 2, 3, 5, and 7 we have
π(10) = 4.
Here is a table of values of π(10i) for i = 2, . . . , 10. I also include known
approximations to π(x). Note that the formulas for the approximations do
not give integer values, but for the table I have rounded each to the nearest
integer. The values in the table were computed using Maple.
x
π(x)
x
ln(x)
x
ln(x)−1
x 1
dt
2 ln(t)
25
22
28
29
102
3
10
168
145
169
177
4
10
1229
1086
1218
1245
105
9592
8686
9512
9629
6
10
78498
72382
78030
78627
107
664579
620421
661459
664917
108
5761455
5428681
5740304
5762208
9
10
50847534 48254942 50701542 50849234
1010 455052511 434294482 454011971 455055614
You may judge for yourself which approximations appear to be the best. This
table has been continued up to 1021 , but people are still working on finding
1
This means determine whether or not each number is prime.
34
CHAPTER 10. PRIME NUMBERS
the value of π(1022 ). Of course, the approximations are easy to compute with
Maple but the exact value of π(1022 ) is difficult to find.
The above approximations are based on the so-called Prime Number Theorem first conjectured by Gauss in 1793 but not proved till over 100 years
later by Hadamard and Vallée Poussin.
Theorem 10.3 (The Prime Number Theorem).
(∗)
π(x) ∼
x
ln(x)
for all x > 0.
Remark 10.3. (∗) means that
lim
x→∞
π(x)
x
ln(x)
= 1.
Although there are infinitely many primes there are long stretches of
consecutive integers containing no primes.
Theorem 10.4. For any positive integer n there is an integer a such that
the n consecutive integers
a, a + 1, a + 2, . . . , a + (n − 1)
are all composite.
Proof. Given n ≥ 1 let a = (n + 1)! + 2. We claim that all the numbers
a + i,
0≤i≤n−1
are composite. Since (n + 1) ≥ 2 clearly 2 | (n + 1)! and 2 | 2. Hence
2 | (n + 1)! + 2. Since (n + 1)! + 2 > 2, (n + 1)! + 2 is composite. Consider
a + i = (n + 1)! + i + 2
where 0 ≤ i ≤ n − 1 so 2 ≤ i + 2 ≤ n + 1. Thus i + 2 | (n + 1)! and i + 2 | i + 2.
Therefore i + 2 | a + i. Now a + i > i + 2 > 1, so a + i is composite.
Exercise 10.4. Use the Prime Number Theorem and a calculator to approximate the number of primes ≤ 108 . Note ln(108 ) = 8 ln(10).
Exercise 10.5. Find 10 consecutive composite numbers.
35
Exercise 10.6. Prove that 2 is the only even prime number. (Joke: Hence
it is said that 2 is the ”oddest” prime.)
Exercise 10.7. Prove that if a and n are positive integers such that n ≥ 2
and an − 1 is prime then a must be 2. [Hint: By Exercise 2.4
1 + x + x2 + · · · + xn−1 =
that is,
(xn − 1)
x−1
xn − 1 = (x − 1) 1 + x + x2 + · · · + xn−1
if x = 1 and n ≥ 1.]
Exercise 10.8. (a) Is 2n − 1 always prime if n ≥ 2? Explain. (b) Is 2n − 1
always prime if n is prime? Explain.
Exercise 10.9. Show that if p and q are primes and p | q, then p = q.
36
CHAPTER 10. PRIME NUMBERS
Chapter 11
Unique Factorization
Our goal in this chapter is to prove the following fundamental theorem.
Theorem 11.1 (The Fundamental Theorem of Arithmetic). Every
integer n > 1 can be written uniquely in the form
n = p1 p2 · · · ps ,
where s is a positive integer and p1 , p2 , . . . , ps are primes satisfying
p1 ≤ p2 ≤ · · · ≤ ps .
Remark 11.1. If n = p1 p2 · · · ps where each pi is prime, we call this the prime
factorization of n. Theorem 11.1 is sometimes stated as follows:
Every integer n > 1 can be expressed as a product n = p1 p2 · · · ps ,
for some positive integer s, where each pi is prime and this factorization is unique except for the order of the primes pi .
Note for example that
600 = 2 · 2 · 2 · 3 · 5 · 5
= 2·3·2·5·2·5
= 3·5·2·2·2·5
etc.
Perhaps the nicest way to write the prime factorization of 600 is
600 = 23 · 3 · 52 .
37
38
CHAPTER 11. UNIQUE FACTORIZATION
In general it is clear that n > 1 can be written uniquely in the form
(∗)
n = pa11 pa22 · · · pas s , some s ≥ 1,
where p1 < p2 < · · · < ps and ai ≥ 1 for all i. Sometimes (∗) is written
n=
s
pai i .
i=1
Here
stands for product, just as
stands for sum.
To prove Theorem 11.1 we need to first establish a few lemmas.
Lemma 11.1. If a | bc and gcd(a, b) = 1 then a | c.
Proof. Since gcd(a, b) = 1 by Bezout’s Lemma there are s, t such that
1 = as + bt.
If we multiply both sides by c we get
c = cas + cbt = a(cs) + (bc)t.
By assumption a | bc. Clearly a | a(cs) so, by Theorem 3.1, a divides the
linear combination a(cs) + (bc)t = c.
Definition 11.1. We say that a and b are relatively prime if gcd(a, b) = 1.
So we may restate Lemma 11.1 as follows: If a | bc and a is relatively
prime to b then a | c.
Example 11.1. It is not true generally that when a | bc then a | b or a | c.
For example, 6 | 4 · 9, but 6 ∤ 4 and 6 ∤ 9. Note that Lemma 11.1 doesn’t
apply here since gcd(6, 4) = 1 and gcd(6, 9) = 1.
Lemma 11.2 (Euclid’s Lemma). If p is a prime and p | ab, then p | a or
p | b.
Proof. Assume that p | ab. If p | a we are done. Suppose p ∤ a. Let
d = gcd(p, a). Note that d > 0 and d | p and d | a. Since d | p we have d = 1
or d = p. If d = 1 then d = p. But this says that p | a, which we assumed
was not true. So we must have d = 1. Hence gcd(p, a) = 1 and p | ab. So by
Lemma 11.1, p | b.
39
Lemma 11.3. Let p be prime. Let a1 , a2 , . . . , an , n ≥ 1, be integers. If
p | a1 a2 · · · an , then p | ai for at least one i ∈ {1, 2, . . . , n}.
Proof. We use induction on n. The result is clear if n = 1. Assume that the
lemma holds for n such that 1 ≤ n ≤ k. Let’s show it holds for n = k + 1. So
assume p is a prime and p | a1 a2 · · · ak ak+1 . Let a = a1 a2 · · · ak and b = ak+1 .
Then p | a or p | b by Lemma 11.2. If p | a = a1 · · · ak , by the induction
hypothesis, p | ai for some i ∈ {1, . . . , k}. If p | b = ak+1 then p | ak+1 . So we
can say p | ai for some i ∈ {1, 2, . . . , k +1}. So the lemma holds for n = k +1.
Hence by PMI it holds for all n ≥ 1.
Lemma 11.4 (Existence Part of Theorem 11.1). If n > 1 then there
exist primes p1 , . . . , ps for some s ≥ 1 such that
n = p1 p2 · · · ps
and p1 ≤ p2 ≤ · · · ≤ ps .
Proof. Proof by induction on n, with starting value n = 2: If n = 2 then
since 2 is prime we can take p1 = 2, s = 1. Assume the lemma holds for n
such that 2 ≤ n ≤ k. Let’s show it holds for n = k + 1. If k + 1 is prime we
can take s = 1 and p1 = k + 1 and we are done. If k + 1 is composite we can
write k + 1 = ab where 1 < a < k + 1 and 1 < b < k + 1. By the induction
hypothesis there are primes p1 , . . . , pu and q1 , . . . , qv such that
a = p1 · · · pu and b = q1 · · · qv .
This gives us
k + 1 = ab = p1 p2 · · · pu q1 q2 · · · qv ,
that is k + 1 is a product of primes. Let s = u + v. By reordering and
relabeling where necessary we have
k + 1 = p1 p2 · · · ps
where p1 ≤ p2 ≤ · · · ≤ ps . So the lemma holds for n = k + 1. Hence by PMI,
it holds for all n > 1.
Lemma 11.5 (Uniqueness Part of Theorem 11.1). Let
n = p1 p2 · · · ps for some s ≥ 1,
40
CHAPTER 11. UNIQUE FACTORIZATION
and
n = q1 q2 · · · qt for some t ≥ 1,
where p1 , . . . , ps , q1 , . . . , qt are primes satisfying
p1 ≤ p2 ≤ · · · ≤ ps
and
q1 ≤ q2 ≤ · · · ≤ qt .
Then, t = s and pi = qi for i = 1, 2, . . . , t.
Proof. Our proof is by induction on s. Suppose s = 1. Then n = p1 is prime
and we have
p1 = n = q1 q2 · · · qt .
If t > 1, this contradicts the fact that p1 is prime. So t = 1 and we have
p1 = q1 , as desired. Now assume the result holds for all s such that 1 ≤ s ≤ k.
We want to show that it holds for s = k + 1. So assume
n = p1 p2 · · · pk pk+1
and
n = q1 q2 · · · qt
where p1 ≤ p2 ≤ · · · ≤ pk+1 and q1 ≤ q2 ≤ · · · ≤ qt . Clearly pk+1 | n so
pk+1 | q1 · · · qt . So by Lemma 11.3 pk+1 | qi for some i ∈ {1, 2, . . . , t}. It
follows from Exercise 10.9 that pk+1 = qi . Hence pk+1 = qi ≤ qt .
By a similar argument qt | n so qt | p1 · · · pk+1 and qt = pj for some j.
Hence qt = pj ≤ pk+1 . This shows that
pk+1 ≤ qt ≤ pk+1
so pk+1 = qt . Note that
p1 p2 · · · pk pk+1 = q1 q2 · · · qt−1 qt
Since pk+1 = qt we can cancel this prime from both sides and we have
p1 p2 · · · pk = q1 q2 · · · qt−1 .
Now by the induction hypothesis k = t − 1 and pi = qi for i = 1, . . . , t − 1.
Thus we have k + 1 = t and pi = qi for i = 1, 2, . . . , t. So the lemma holds
for s = k + 1 and by the PMI, it holds for all s ≥ 1.
41
Now the proof of Theorem 11.1 follows immediately from Lemmas 11.4
and 11.5.
Remark 11.2. If a and b are positive integers we can find primes p1 , . . . , pk
and integers a1 , . . . , ak , b1 , . . . , bk each ≥ 0 such that
a = pa11 pa22 · · · pakk
(∗∗)
b = pb11 pb22 · · · pbkk
For example, if a = 600 and b = 252 we have
600 = 23 · 31 · 52 · 70
252 = 22 · 32 · 50 · 7.
It follows that
gcd(600, 252) = 22 · 31 · 50 · 70 .
In general, if a and b are given by (∗∗) we have
min(a1 ,b1 ) min(a2 ,b2 )
p2
gcd(a, b) = p1
min(ak ,bk )
· · · pk
.
This gives one way to calculate the gcd provided you can factor both numbers.
But generally speaking factorization is very difficult! On the other hand, the
Euclidean algorithm is relatively fast.
Exercise 11.1.
√ Find the√prime factorizations of 1147 and 1716 by trying all
primes p ≤ 1147 (p ≤ 1716) in succession.
42
CHAPTER 11. UNIQUE FACTORIZATION
Chapter 12
Fermat Primes and Mersenne
Primes
Finding large primes and proving that they are indeed prime is not easy. One
way to find large primes is to look at numbers that have some special form,
for example, numbers of the form an + 1 or an − 1. It is easy to rule out some
values of a and n. For example we have:
Theorem 12.1. Let a > 1 and n > 1. Then
(1) an − 1 is prime ⇒ a = 2 and n is prime
(2) an + 1 is prime ⇒ a is even and n = 2k for some k ≥ 1.
Proof of (1). We know from Exercise 2.5, page 6, that
(∗)
an − 1 = (a − 1)(an−1 + · · · + a + 1)
Note that if a > 2 and n > 1 then a − 1 > 1 and an−1 + · · ·+ a + 1 > a + 1 > 3
so both factors in (∗) are > 1 and an − 1 is not prime. Hence if an − 1 is
prime we must have a = 2. Now suppose 2n − 1 is prime. We claim that n
is prime. If not n = st where 1 < s < n, 1 < t < n. Then
2n − 1 = 2st − 1 = (2s )t − 1
is prime. But we just showed that if an − 1 is prime we must have a = 2. So
we must have 2s = 2. Hence s = 1, t = n. So n is not composite. Hence n
must be prime. This proves (1).
43
44
CHAPTER 12. FERMAT PRIMES AND MERSENNE PRIMES
Proof of (2). From (∗) on p. 43 we have
(∗)
an − 1 = (a − 1)(an−1 + an−2 + · · · + a + 1).
Replace a by −a in (∗) and we get
(∗∗)
(−a)n − 1 = (−a − 1) (−a)n−1 + (−a)n−2 + · · · + (−a) + 1
Since n is odd, n − 1 is even, n − 2 is odd, . . . , etc., we have (−a)n =
−an , (−a)n−1 = an−1 , (−a)n−2 = −an−2 , . . . , etc. So (∗∗) yields
−(an + 1) = −(a + 1) an−1 − an−2 + · · · + −a + 1 .
Multiplying both sides by −1 we get
(an + 1) = (a + 1)(an−1 − an−2 + · · · − a + 1)
when n is odd. If n ≥ 2 we have 1 < a + 1 < an + 1. This shows that if n is
odd and a > 1, an + 1 is not prime. Suppose n = 2s t where t is odd. Then if
s
an + 1 is prime we have (a2 )t + 1 is prime. But by what we just showed this
cannot be prime if t is odd and t ≥ 2. So we must have t = 1 and n = 2s .
Also an + 1 prime implies that a is even since if a is odd so is an . Then an + 1
would be even. The only even prime is 2. But since we assume a > 1 we
have a ≥ 2 so an + 1 ≥ 3.
Definition 12.1. A number of the form Mn = 2n − 1, n ≥ 2, is said to be
a Mersenne number. If Mn is prime, it is called a Mersenne prime. A
n
number of the form Fn = 2(2 ) + 1, n ≥ 0, is called a Fermat number. If
Fn is prime, it is called a Fermat prime.
One may prove that F0 = 3, F1 = 5, F2 = 17, F3 = 257 and F4 = 65537
n
are primes. As n increases the numbers Fn = 2(2 ) + 1 increase in size
very rapidly, and are not easy to check for primality. It is known that Fn is
composite for many values of n ≥ 5. This includes all n such that 5 ≤ n ≤ 30
and a large number of other values of n including 382447 (the largest one I
know of). It is now conjectured that Fn is composite for n ≥ 5. So Fermat’s
original thought that Fn is prime for n ≥ 0 seems to be pretty far from
reality.
Exercise 12.1. Use Maple to factor F5 . [Go to any campus computer lab.
Click or double-click on the Maple icon—or ask the lab assistant where it is
located. When the window comes up, type at the prompt > the following:
45
> ifactor(2^32 + 1);
Hit the return key and you will get the answer.]
M3 = 23 − 1 = 7 is a Mersenne prime and M4 = 24 − 1 = 15 is a Mersenne
number which is not a prime. At first it was thought that Mp = 2p − 1 is
prime whenever p is prime. But M11 = 211 − 1 = 2047 = 23 · 89 is not prime.
Over the years people have continued to work on the problem of determining for which primes p, Mp = 2p − 1 is prime. To date 39 Mersenne
primes have been found. It is known that 2p − 1 is prime if p is one of the
following 39 primes 2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607, 1279,
2203, 2281, 3217, 4253, 4423, 9689, 9941, 11213, 19937, 21701, 23209, 44497,
86243, 110503, 132049, 216091, 756839, 859433, 1257787, 1398269, 2976221,
3021377, 6972593, 13466917.
The largest one, M13466917 = 213466917 − 1, was found on November 14,
2001. The decimal representation of this number has 4, 053, 946 digits. It was
found by the team of Michael Cameron, George Woltman, Scott Kurowski et
al, as a part of the Great Internet Mersenne Prime Search (GIMPS),
see Chris Caldwell’s page for more about this. This prime could be the 39th
Mersenne prime (in order of size), but we will only know this for sure when
GIMPS completes testing all exponents below this one.You can find the link
to Chris Caldwell’s page on the class syllabus on my homepage. Later we
show the connection between Mersenne primes and perfect numbers.
Lemma 12.1. If Mn is prime, then n is prime.
Proof. This is immediate from Theorem 12.1 (1).
The most basic question about Mersenne primes is: Are there infinitely many
Mersenne primes?
Exercise 12.2. Determine which Mersenne numbers Mn are prime when
2 ≤ n ≤ 12. You may use Maple for this exercise. The Maple command for
determining whether or not an integer n is prime is
isprime(n);
The following primality test for Mersenne numbers makes it easier to
check whether or not Mp is prime when p is a large prime.
46
CHAPTER 12. FERMAT PRIMES AND MERSENNE PRIMES
Theorem 12.2 (The Lucas-Lehmer Mersenne Prime Test). Let p be
an odd prime. Define the sequence
r1 , r2 , r3 , . . . , rp−1
by the rules
r1 = 4
and for k ≥ 2,
2
rk = (rk−1
− 2) mod Mp .
Then Mp is prime if and only if rp−1 = 0.
[The proof of this is not easy. One place to find a proof is the book “A
Selection of Problems in the Theory of Numbers” by W. Sierpinski, Pergamon
Press, 1964.]
Example 12.1. Let p = 5. Then Mp = M5 = 31.
r1
r2
r3
r4
=4
= (42 − 2) mod 31 = 14 mod 31 = 14
= (142 − 2) mod 31 = 194 mod 31 = 8
= (82 − 2) mod 31 = 62 mod 31 = 0.
Hence by the Lucas-Lehmer test, M5 = 31 is prime.
Exercise 12.3. Show using the Lucas-Lehmer test that M7 = 127 is prime.
Remark 12.1. Note that the Lucas-Lehmer test for Mp = 2p − 1 takes only
p − 1 steps. On
the other hand, if one attemptsp to prove Mp prime by testing
all primes ≤ Mp one must consider about 2 2 steps. This is MUCH larger
than p in general.
Chapter 13
The Functions σ and τ
Definition 13.1. For n > 0 define:
τ (n) = the number of positive divisors of n,
σ(n) = the sum of the positive divisors of n.
Example 13.1. 12 = 3 · 22 has positive divisors
1, 2, 3, 4, 6, 12.
Hence
τ (12) = 6
and
σ(12) = 1 + 2 + 3 + 4 + 6 + 12 = 28.
Definition 13.2. A positive divisor d of n is said to be a proper divisor
of n if d < n. We denote the sum of all proper divisors of n by σ ∗ (n).
Note that if n ≥ 2 then
σ ∗ (n) = σ(n) − n.
Example 13.2. σ ∗ (12) = 16.
Definition 13.3. n > 1 is perfect if σ ∗ (n) = n.
Example 13.3. The proper divisors of 6 are 1, 2 and 3. So σ ∗ (6) = 6.
Therefore 6 is perfect.
47
48
CHAPTER 13. THE FUNCTIONS σ AND τ
Exercise 13.1. Prove that 28 is perfect.
The next theorem shows a simple way to compute σ(n) and τ (n) from
the prime factorization of n.
Theorem 13.1. Let
n = pe11 pe22 · · · perr ,
r ≥ 1,
where p1 < p2 < · · · < pr are primes and ei ≥ 0 for each i ∈ {1, 2, . . . , r}.
Then
(1) τ (n) = (e1 + 1)(e2 + 1) · · · (er + 1)
e1 +1
e2 +1
er +1
p2 − 1
pr
p1 − 1
−1
···
.
(2) σ(n) =
p1 − 1
p2 − 1
pr − 1
Before proving this let’s look at an example. Take n = 72 = 8 · 9 = 23 · 32 .
The theorem says
τ (72) = (3 + 1)(2 + 1) = 12
3
4
3 −1
2 −1
σ(72) =
= 15 · 13 = 195.
2−1
3−1
[Proof of Theorem 13.1 (1)] From the Fundamental Theorem of Arithmetic
every positive factor d of n will have its prime factors coming from those of
n. Hence d | n iff d = pf11 pf22 · · · pfrr where for each i:
0 ≤ fi ≤ ei .
That is, for each fi we can choose a value in the set of ei + 1 numbers
{0, 1, 2, . . . , ei }. So, in all, there are (e1 + 1)(e2 + 1) · · · (er + 1) choices for
the exponents f1 , f2 , . . . , fr . So (1) holds.
[Proof of (2)] We first establish two lemmas.
Lemma 13.1. Let n = ab where a > 0, b > 0 and gcd(a, b) = 1. Then
σ(n) = σ(a)σ(b).
Proof. Since a and b have only 1 as a common factor, using the Fundamental
Theorem of Arithmetic it is easy to see that d | ab ⇔ d = d1 d2 where d1 | a
49
and d2 | b. That is, the divisors of ab are products of the divisors of a and
the divisors of b. Let
1, a1 , . . . , as
denote the divisors of a and let
1, b1 , . . . , bt
denote the divisors of b. Then
σ(a) = 1 + a1 + a2 + · · · + as ,
σ(b) = 1 + b1 + b2 + · · · + bt .
The divisors of n = ab can be listed as follows
1, b1 , b2 , . . . , bt ,
a1 · 1, a1 · b1 , a1 · b2 , . . . , a1 · bt ,
a2 · 1, a2 · b1 , a2 · b2 , . . . , a2 · bt ,
..
.
as · 1, as · b1 , as · b2 , . . . , as · bt .
It is important to note that since gcd(a, b) = 1, ai bj = ak bℓ implies that
ai = ak and bj = bℓ . That is there are no repetitions in the above array.
If we sum each row we get
1 + b1 + · · · + bt = σ(b)
a1 1 + a1 b1 + · · · + a1 bt = a1 σ(b)
..
.
as · 1 + as b1 + · · · + as bt = as σ(b).
By adding these partial sums together we get
σ(n) = σ(b) + a1 σ(b) + a2 σ(b) + · · · + a3 σ(b)
= (1 + a1 + a2 + · · · + as )σ(b)
= σ(a)σ(b).
This proves the lemma.
50
CHAPTER 13. THE FUNCTIONS σ AND τ
Lemma 13.2. If p is a prime and k ≥ 0 we have
σ(pk ) =
pk+1 − 1
.
p−1
Proof. Since p is prime, the divisors of pk are 1, p, p2, . . . , pk . Hence
pk+1 − 1
σ(p ) = 1 + p + p + · · · + p =
,
p−1
2
k
k
as desired.
Proof of Theorem 13.1 (2) (continued). Let n = pe11 pe22 · · · perr . Our proof is
by induction on r. If r = 1, n = pe11 and the result follows from Lemma 13.2.
Suppose the result is true when 1 ≤ r ≤ k. Consider now the case r = k + 1.
That is, let
ek+1
n = pe11 · · · pekk pk+1
where the primes p1 , . . . , pk , pk+1 are distinct and ei ≥ 0. Let a = pe11 · · · pekk ,
ek+1
b = pk+1
. Clearly gcd(a, b) = 1. So by Lemma 13.1 we have σ(n) = σ(a)σ(b).
By the induction hypothesis
e1 +1
ek +1
p1 − 1
pk
−1
σ(a) =
···
p1 − 1
pk − 1
and by Lemma 13.2
e
and it follows that
σ(n) =
+1
k+1
−1
pk+1
σ(b) =
pk+1 − 1
p1e1 +1 − 1
p1 − 1
···
e
+1
k+1
−1
pk+1
pk+1 − 1
.
So the result holds for r = k + 1. By PMI it holds for r ≥ 1.
Exercise 13.2. Find σ(n) and τ (n) for the following values of n.
(1) n = 900
(2) n = 496
(3) n = 32
51
(4) n = 128
(5) n = 1024
Exercise 13.3. Determine which (if any) of the numbers in Exercise 13.2
are perfect.
Exercise 13.4. Does Lemma 13.1 hold if we replace σ by σ ∗ ? [Hint: The
answer is no, but find explicit numbers a and b such that the result fails yet
gcd(a, b) = 1.]
52
CHAPTER 13. THE FUNCTIONS σ AND τ
Chapter 14
Perfect Numbers and Mersenne
Primes
If you do a search for perfect numbers up to 10, 000 you will find only the
following perfect numbers:
6 = 2 · 3,
28 = 22 · 7,
496 = 24 · 31,
8128 = 26 · 127.
Note that 22 = 4, 23 = 8, 25 = 32, 27 = 128 so we have:
6 = 2 · (22 − 1),
28 = 22 · (23 − 1),
496 = 24 · (25 − 1),
8128 = 26 · (27 − 1).
Note also that 22 − 1, 23 − 1, 25 − 1, 27 − 1 are Mersenne primes. One might
conjecture that all perfect numbers follow this pattern. We discuss to what
extent this is known to be true. We start with the following result.
Theorem 14.1. If 2p − 1 is a Mersenne prime, then 2p−1 · (2p − 1) is perfect.
Proof. Write q = 2p − 1 and let n = 2p−1 q. Since q is odd
and prime, by
2 −1
p −1
q
2
= (2p − 1)(q +
Theorem 13.1 (2) we have σ(n) = σ (2p−1 q) = 2−1
q−1
1) = (2p − 1)2p = 2n. That is, σ(n) = 2n and n is perfect.
53
54
CHAPTER 14. PERFECT NUMBERS AND MERSENNE PRIMES
Now we show that all even perfect numbers have the conjectured form.
Theorem 14.2. If n is even and perfect then there is a Mersenne prime
2p − 1 such that n = 2p−1 (2p − 1).
Proof. Let n be even and perfect. Since n is even, n = 2m for some m. We
take out as many powers of 2 as possible obtaining
(∗)
n = 2k · q,
k ≥ 1, q odd.
Since n is perfect σ ∗ (n) = n, that is, σ(n) = 2n. Since q is odd, gcd(2k , q) = 1,
so by Lemmas 13.1 and 13.2:
σ(n) = σ(2k )σ(q) = (2k+1 − 1)σ(q).
So we have
hence
2k+1 q = 2n = σ(n) = (2k+1 − 1)σ(q),
2k+1 q = (2k+1 − 1)σ(q).
(∗∗)
Now σ ∗ (q) = σ(q) − q, so
σ(q) = σ ∗ (q) + q.
Putting this in (∗∗) we get
2k+1q = (2k+1 − 1)(σ ∗ (q) + q)
or
which implies
(∗ ∗ ∗)
2k+1q = (2k+1 − 1)σ ∗ (q) + 2k+1q − q
σ ∗ (q)(2k+1 − 1) = q.
In other words, σ ∗ (q) is a divisor of q. Since k ≥ 1 we have 2k+1 − 1 ≥
4 − 1 = 3. So σ ∗ (q) is a proper divisor of q. But σ ∗ (q) is the sum of all
proper divisors of q. This can only happen if q has only one proper divisor.
This means that q must be prime and σ ∗ (q) = 1. Then (∗ ∗ ∗) shows that
q = 2k+1 − 1. So q must be a Mersenne prime and k + 1 = p is prime. So
n = 2p−1 · (2p − 1), as desired.
55
Corollary 14.1. There is a 1–1 correspondence between even perfect numbers and Mersenne primes.
Three Open Questions:
1. Are there infinitely many even perfect numbers?
2. Are there infinitely many Mersenne primes?
3. Are there any odd perfect numbers?
So far no one has found a single odd perfect number. It is known that if
an odd perfect number exists, it must be > 1050 .
Remark 14.1. Some think that Euclid’s knowledge that 2p−1 (2p −1) is perfect
when 2p −1 is prime may have been his motivation for defining prime numbers.
56
CHAPTER 14. PERFECT NUMBERS AND MERSENNE PRIMES
Chapter 15
Congruences
Definition 15.1. Let m ≥ 0. We write a ≡ b (mod m) if m | a − b, and
we say that a is congruent to b modulo m. Here m is said to be the modulus
of the congruence. The notation a ≡ b (mod m) means that it is false that
a ≡ b (mod m).
Examples 15.1.
(1) 25 ≡ 1 (mod 4) since 4 | 24
(2) 25 ≡ 2 (mod 4) since 4 ∤ 23
(3) 1 ≡ −3 (mod 4) since 4 | 4
(4) a ≡ b (mod 1) for all a, b since “1 divides everything.”
(5) a ≡ b (mod 0) ⇐⇒ a = b for all a, b since “0 divides only 0.”
Remark 15.1. As you see, the cases m = 1 and m = 0 are not very interesting
so mostly we will only be interested in the case m ≥ 2.
WARNING. Do not confuse the use of mod in Definition 15.1 with that
of Definition 5.3. We shall see that the two uses of mod are related, but have
different meanings: Recall
a mod b = r where r is the remainder given by
the Division Algorithm when a is divided by b
57
58
CHAPTER 15. CONGRUENCES
and by Definition 15.1
a ≡ b (mod m) means m | a − b.
Example 15.2.
25 ≡ 5
since 4 | 20 but
(mod 4) is true ,
25 = 5 mod 4 is false ,
since the latter means 25 = 1.
Remark 15.2. The mod in a ≡ b (mod m) defines a binary relation, whereas the mod in a mod b is a binary operation.
More terminology: Expressions such as
x=2
42 = 16
x2 + 2x = sin(x) + 3
are called equations. By analogy, expressions such as
x ≡ 2 (mod 16)
25 ≡ 5 (mod 5)
3
x + 2x ≡ 6x2 + 3 (mod 27)
are called congruences. Before discussing further the analogy between equations and congruences, we show the relationship between the two different
definitions of mod.
Theorem 15.1. For m > 0 and for all a, b:
a ≡ b (mod m) ⇐⇒ a mod m = b mod m.
Proof. “⇒” Assume that a ≡ b (mod m). Let r1 = a mod m and r2 =
b mod m. We want to show that r1 = r2 . By definition we have
(1) m | a − b,
(2) a = mq1 + r1 , 0 ≤ r1 < m, and
59
(3) b = mq2 + r2 , 0 ≤ r2 < m
From (1) we obtain
a − b = mt
for some t. Hence
a = mt + b.
Using (2) and (3) we see that
a = mq1 + r1 = m (q2 + t) + r2 .
Since 0 ≤ r1 < m and 0 ≤ r2 < m by the uniqueness part of the Division
Algorithm we obtain r1 = r2 , as desired.
“ ⇐” Assume that a mod m = b mod m. We must show that a ≡ b
(mod m). Let r = a mod m = b mod m, then by definition we have
a = mq1 + r,
0 ≤ r < m,
b = mq2 + r,
0 ≤ r < m.
and
Hence
a − b = m (q1 − q2 ) .
This shows that m | a − b and hence a ≡ b (mod m), as desired.
Exercise 15.1. Prove that for all m > 0 and for all a:
a ≡ a mod m
(mod m).
Exercise 15.2. Using Definition 15.1 show that the following congruences
are true
385 ≡ 322 (mod 3)
−385 ≡ −322 (mod 3)
1 ≡ −17 (mod 3)
33 ≡ 0 (mod 3).
Exercise 15.3. Use Theorem 15.1 to show that the congruences in Exercise
15.2 are valid.
60
CHAPTER 15. CONGRUENCES
Exercise 15.4. (a) Show that a is even ⇔ a ≡ 0 (mod 2) and a is odd
⇔ a ≡ 1 (mod 2). (b) Show that a is even ⇔ a mod 2 = 0 and a is odd
⇔ a mod 2 = 1.
Exercise 15.5. Show that if m > 0 and a is any integer, there is a unique
integer r ∈ {0, 1, 2, . . . , m − 1} such that a ≡ r (mod m).
Exercise 15.6. Find integers a and b such that 0 < a < 15, 0 < b < 15 and
ab ≡ 0 (mod 15).
Exercise 15.7. Find integers a and b such that 1 < a < 15, 1 < b < 15, and
ab ≡ 1 (mod 15).
Exercise 15.8. Show that if d | m and d > 0, then
a≡b
(mod m) ⇒ a ≡ b (mod d).
The next two theorems show that congruences and equations share many
similar properties.
Theorem 15.2 (Congruence is an equivalence relation). For all a, b,
c and m > 0 we have
(1) a ≡ a (mod m)
[reflexivity]
(2) a ≡ b (mod m) ⇒ b ≡ a (mod m)
[symmetry]
(3) a ≡ b (mod m) and b ≡ c (mod m) ⇒ a ≡ c (mod m)
[transitivity]
Proof of (1). a − a = 0 = 0 · m, so m | a − a. Hence a ≡ a (mod m).
Proof of (2). If a ≡ b (mod m), then m | a − b. Hence a − b = mq. Hence
b − a = m(−q), so m | b − a. Hence b ≡ a (mod m).
Proof of (3). If a ≡ b (mod m) and b ≡ c (mod m) then m | a − b and
m | b − c. By the linearity property m | (a − b) + (b − c). That is, m | a − c.
Hence a ≡ c (mod m).
Recall that a polynomial is an expression of the form
f (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 .
Here we will assume that the coefficients an , . . . , a0 are integers and x also
represents an integer variable. Here, of course, n ≥ 0 and n is an integer.
61
Theorem 15.3. If a ≡ b (mod m) and c ≡ d (mod m), then
(1) a ± c ≡ b ± d (mod m)
(2) ac ≡ bd (mod m)
(3) an ≡ bn (mod m) for all n ≥ 1
(4) f (a) ≡ f (b) (mod m) for all polynomials f (x) with integer coefficients.
Proof of (1). To prove (1) since a − c = a + (−c), it suffices to prove only
the “+ case.” By assumption m | a − b and m | c − d. By linearity, m |
(a − b) + (c − d), that is m | (a + c) − (b + d). Hence
a + c ≡ b + d (mod m).
Proof of (2). Since m | a − b and m | c − d by linearity
m | c(a − b) + b(c − d).
Now c(a − b) + b(c − d) = ca − bd, hence
m | ca − bd,
and so ca ≡ bd (mod m), as desired.
Proof of (3). We prove an ≡ bn (mod m) by induction on n. If n = 1, the
result is true by our assumption that a ≡ b (mod m). Assume it holds for
n = k. Then we have ak ≡ bk (mod m). This, together with a ≡ b (mod m)
using (2) above, gives aak ≡ bbk (mod m). Hence ak+1 ≡ bk+1 (mod m). So
it holds for all n ≥ 1, by the PMI.
Proof of (4). Let f (x) = cn xn + · · · + c1 x + c0 . We prove by induction on n
that if a ≡ b (mod m) then
cn an + · · · + c0 ≡ cn bn + · · · + c0
(mod m).
If n = 0 we have c0 ≡ c0 (mod m) by Theorem 15.2 (1). Assume the result
holds for n = k. Then we have
(∗)
ck ak + · · · + c1 a + c0 ≡ ck bk + · · · + c1 b + c0
(mod m).
62
CHAPTER 15. CONGRUENCES
By part (3) above we have ak+1 ≡ bk+1 (mod m). Since ck+1 ≡ ck+1 (mod m)
using (2) above we have
ck+1 ak+1 ≡ ck+1 bk+1
(∗∗)
(mod m).
Now we can apply Theorem 15.3 (1) to (∗) and (∗∗) to obtain
ck+1 ak+1 + ck ak + · · · + c0 ≡ ck+1 bk+1 + ck bk + · · · + c0
(mod m).
So by the PMI, the result holds for n ≥ 0.
Before continuing to develop properties of congruences, we give the following example to show one way that congruences can be useful.
Example 15.3. (This example was taken from [1] Introduction to Analytic
Number Theory, by Tom Apostol.)
The first five Fermat numbers
F0 = 3,
F1 = 5,
F2 = 17,
F3 = 257,
F4 = 65, 537
are primes. We show using congruences without explicitly calculating F5 that
F5 = 232 + 1 is divisible by 641 and is therefore not prime :
22 = 4
2
24 = 22 = 42 = 16
2
28 = 24 = 162 = 256
2
216 = 28 = 2562 = 65, 536
So we have
By Theorem 15.3 (3):
That is,
Since
65, 536 ≡ 154 (mod 641).
216 ≡ 154 (mod 641).
16 2
2
≡ (154)2
(mod 641).
232 ≡ 23, 716 (mod 641).
23, 716 ≡ 640 (mod 641)
63
and
640 ≡ −1 (mod 641)
we have
232 ≡ −1
and hence
(mod 641)
232 + 1 ≡ 0 (mod 641).
So 641 | 232 + 1, as claimed. Clearly 232 + 1 = 641, so 232 + 1 is composite. Of
course, if you already did Exercise 12.1 (p. 44) you will already know that
232 + 1 = 4, 294, 967, 297 = (641) · (6, 700, 417)
and that 641 and 6, 700, 417 are indeed primes. Note that 641 is the 116th
prime, so if you used trial division you would have had to divide by 115
primes before reaching one that divides 232 + 1, and that assumes that you
have a list of the first 116 primes.
Theorem 15.4. If m > 0 and
a≡r
(mod m) where 0 ≤ r < m
then a mod m = r.
Exercise 15.9. Prove Theorem 15.4. [Hint: The Division Algorithm may
be useful.]
Exercise 15.10. Find the value of each of the following (without using
Maple!).
(1) 232 mod 7
(2) 1035 mod 7
(3) 335 mod 7
[Hint: Use Theorem 15.4 and the ideas used in the example on page 62.]
Exercise 15.11. Let gcd (m1 , m2 ) = 1. Prove that
(15.1)
a ≡ b (mod m1 ) and a ≡ b (mod m2 )
if and only if
(15.2)
a ≡ b (mod m1 m2 ).
[Hint. Use Lemma 11.1, page 38.]
64
CHAPTER 15. CONGRUENCES
Chapter 16
Divisibility Tests for 2, 3, 5, 9, 11
Recall from Definition 4.2 on page 14 that the decimal representation of the
positive integer a is given by
a = an−1 an−2 · · · a1 a0
(1)
when
a = an−1 10n−1 + an−2 10n−2 + · · · + a1 10 + a0
and 0 ≤ ai ≤ 9 for i = 0, 1, . . . , n − 1.
Theorem 16.1. Let the decimal representation of a be given by (1), then
(a) a mod 2 = a0 mod 2,
(b) a mod 5 = a0 mod 5,
(c) a mod 3 = (an−1 + · · · + a0 ) mod 3,
(d) a mod 9 = (an−1 + · · · + a0 ) mod 9,
(e) a mod 11 = (a0 − a1 + a2 − a3 + · · · ) mod 11.
Before proving this theorem, let’s give some examples.
1457 mod 2 = 7 mod 2 = 1
1457 mod 5 = 7 mod 5 = 2
1457 mod 3 = (1 + 4 + 5 + 7) mod 3 = 17 mod 3
= 8 mod 3 = 2
65
66
CHAPTER 16. DIVISIBILITY TESTS FOR 2, 3, 5, 9, 11
1457 mod 9 = (1 + 4 + 5 + 7) mod 9
= 17 mod 9
= 8 mod 9
=8
1457 mod 11 = 7 − 5 + 4 − 1 mod 11
= 5 mod 11
= 5.
Proof of Theorem 16.1. Consider the polynomial
f (x) = an−1 xn−1 + · · · + a1 x + a0 .
Note that 10 ≡ 0 (mod 2). So by Theorem 15.3 (4)
an−1 10n−1 + · · · + a1 10 + a0 ≡ an−1 0n−1 + · · · + a1 0 + a0
(mod 2).
That is,
a ≡ a0
(mod 2).
This, together with Theorem 15.1, proves part (a). Since 10 ≡ 0 (mod 5),
the proof of part (b) is similar.
Note that 10 ≡ 1 (mod 3) so applying theorem 15.3 (4) again, we have
an−1 10n−1 + · · · + a1 10 + a0 ≡ an−1 1n−1 + · · · + a1 1 + a0
(mod 3).
That is,
a ≡ an−1 + · · · + a1 + a0
(mod 3).
This using Theorem 15.1 proves part (c). Since 10 ≡ 1 (mod 9), the proof
of part (d) is similar.
Now 10 ≡ −1 (mod 11) so
an−1 10n−1 + · · · + a1 10 + a0 ≡ an−1 (−1)n−1 + · · · + a1 (−1) + a0
That is,
a ≡ a0 − a1 + a2 − · · ·
and by Theorem 15.1 we are done.
(mod 11)
(mod 11).
67
Remark 16.1. Note that
m | a ⇔ a mod m = 0,
so from Theorem 16.1 we obtain immediately the following corollary.
Corollary 16.1. Let a be given by (1), p. 65. Then
(a) 2 | a ⇔ a0 = 0, 2, 4, 6 or 8
(b) 5 | a ⇔ a0 = 0 or 5
(c) 3 | a ⇔ 3 | a0 + a1 + · · · + an−1
(d) 9 | a ⇔ 9 | a0 + a1 + · · · + an−1
(e) 11 | a ⇔ 11 | a0 − a1 + a2 − a3 + · · · .
Note that in applying (c), (d) and (e) we can use the fact that
(a + m) mod m = a
to “cast out” 3’s (for (c)) and 9’s (for (d)). Here’s an example of “casting
out 9’s:”
1487 mod 9 = (1 + 4 + 8 + 7) mod 9
= (9 + 4 + 7) mod 9
= (4 + 7) mod 9
= (2 + 9) mod 9
= 2 mod 9 = 2.
So 1487 mod 9 = 2.
Note that if 0 ≤ r < m then
r mod m = r.
Exercise 16.1. Let a = 18726132117057. Find a mod m for m = 2, 3, 5, 9
and 11.
68
CHAPTER 16. DIVISIBILITY TESTS FOR 2, 3, 5, 9, 11
Exercise 16.2. Let a = an · · · a1 a0 be the decimal representation of a. Then
prove
(a) a mod 10 = a0 .
(b) a mod 100 = a1 a0 .
(c) a mod 1000 = a2 a1 a0 .
Exercise 16.3. Prove that if b is a positive square, i.e., b = a2 , a > 0, then
the least significant digit of b is one of 0, 1, 4, 5, 6, 9. [Hint: b mod 10 is the
least significant digit of b. Write a = an−1 · · · a0 . Then a ≡ a0 (mod 10) so
a2 ≡ a20 (mod 10). For each digit a0 ∈ {0, 1, 2, . . . , 9} find a20 mod 10. Use
Theorem 15.4, among other results.]
Exercise 16.4. Are any of the following numbers squares? Explain.
10,
11,
16,
19,
24,
25,
272,
2983,
11007,
1120378
Chapter 17
Divisibility Tests for 7 and 13
Theorem 17.1. Let a = ar ar−1 · · · a1 a0 be the decimal representation of a.
Then
(a) 7 | a ⇔ 7 | ar · · · a1 − 2a0 .
(b) 13 | a ⇔ 13 | ar · · · a1 − 9a0 .
[Here ar · · · a1 =
a−a0
10
= ar 10r−1 + · · · + a2 10 + a1 .]
Before proving this theorem we illustrate it with two examples.
7 | 2481 ⇔ 7 | 248 − 2
⇔ 7 | 246
⇔ 7 | 24 − 12
⇔ 7 | 12
since 7 ∤ 12 we have 7 ∤ 2481.
13 | 12987 ⇔ 13 | 1298 − 63
⇔ 13 | 1235
⇔ 13 | 123 − 45
⇔ 13 | 78
since 6 · 13 = 78, we have 13 | 78. So, by Theorem 17.1 (b), 13 | 12987.
69
70
CHAPTER 17. DIVISIBILITY TESTS FOR 7 AND 13
Proof of 17.1 (a). Let c = ar · · · a1 . So we have a = 10c + a0 . Hence −2a =
−20c − 2a0 . Now 1 ≡ −20 (mod 7) so we have
−2a ≡ c − 2a0
(mod 7).
It follows from Theorem 15.1 that
−2a mod 7 = c − 2a0 mod 7.
Hence, 7 | −2a ⇔ 7 | c − 2a0 . Since gcd(7, −2) = 1 we have 7 | −2a ⇔ 7 | a.
Hence 7 | a ⇔ 7 | c − 2a0 , which is what we wanted to prove.
Proof of 17.1 (b). (This has a similar proof to that for 17.1 (a) and is left
for the interested reader.)
Exercise 17.1. Use Theorem 17.1 (a) to determine which of the following
are divisible by 7:
(a) 6994
(b) 6993
Exercise 17.2. In the notation of Theorem 17.1, show that a mod 7 need
not be equal to (ar · · · a1 − 2a0 ) mod 7..
Chapter 18
More Properties of
Congruences
Theorem 18.1. Let m ≥ 2. If a and m are relatively prime, there exists a
unique integer a∗ such that aa∗ ≡ 1 (mod m) and 0 < a∗ < m.
We call a∗ the inverse of a modulo m. Note that we do not denote a∗ by
a−1 since this might cause some confusion. Of course, if c ≡ a∗ (mod m)
then ac ≡ 1 (mod m) so a∗ is not unique unless we specify that 0 < a∗ < m.
Proof. If gcd(a, m) = 1, then by Bezout’s Lemma there exist s and t such
that
as + mt = 1.
Hence
as − 1 = m(−t),
that is, m | as − 1 and so as ≡ 1 (mod m). Let a∗ = s mod m. Then a∗ ≡ s
(mod m) so aa∗ ≡ 1 (mod m) and clearly 0 < a∗ < m.
To show uniqueness assume that ac ≡ 1 (mod m) and 0 < c < m. Then
ac ≡ aa∗ (mod m). So if we multiply both sides of this congruence on the
left by c and use the fact that ca ≡ 1 (mod m) we obtain c ≡ a∗ (mod m).
It follows from Exercise 15.5 that c = a∗ .
Remark 18.1. From the above proof we see that Blankinship’s Method may
be used to compute the inverse of a when it exists, but for small m we may
71
72
CHAPTER 18. MORE PROPERTIES OF CONGRUENCES
often find a∗ by “trial and error.” For example, if m = 15 take a = 2. Then
we can check each element 0, 1, 2, . . . , 14:
2 · 0 ≡ 1
2 · 1 ≡ 1
2 · 2 ≡ 1
2 · 3 ≡ 1
2 · 4 ≡ 1
2 · 5 ≡ 1
2 · 6 ≡ 1
2 · 7 ≡ 1
2·8≡1
(mod
(mod
(mod
(mod
(mod
(mod
(mod
(mod
(mod
15)
15)
15)
15)
15)
15)
15)
15)
15) since 15 | 16 − 1.
So we can take 2∗ = 8.
Exercise 18.1. Show that the inverse of 2 modulo 7 is not the inverse of 2
modulo 15.
Theorem 18.2. Let m > 0. If ab ≡ 1 (mod m) then both a and b are
relatively prime to m.
Proof. If ab ≡ 1 (mod m), then m | ab − 1. So ab − 1 = mt for some t.
Hence,
ab + m(−t) = 1.
By Exercise 9.2 on page 30, this implies that gcd(a, m) = 1 and gcd(b, m) = 1,
as claimed.
Corollary 18.1. a has an inverse modulo m if and only if a and m are
relatively prime.
Theorem 18.3 (Cancellation). Let m > 0 and assume that gcd(c, m) = 1.
Then
(∗)
ca ≡ cb
(mod m) ⇒ a ≡ b (mod m).
Proof. If gcd(c, m) = 1, there is an integer c∗ such that c∗ c ≡ 1 (mod m).
Now since c∗ ≡ c∗ (mod m) and ca ≡ cb (mod m) by Theorem 15.3, p. 61,
c∗ ca ≡ c∗ cb
(mod m).
73
But c∗ c ≡ 1 (mod m) so
c∗ ca ≡ a
(mod m)
and
c∗ cb ≡ b (mod m).
By reflexivity and transitivity this yields
a ≡ b (mod m).
Exercise 18.2. Find specific positive integers a, b, c and m such that c ≡ 0
(mod m), gcd(c, m) > 0, and ca ≡ cb (mod m), but a ≡ b (mod m).
Although (∗) above is not generally true when gcd(c, m) > 1, we do have
the following more general kinds of “cancellation:”
Theorem 18.4. If c > 0, m > 0 then
a ≡ b (mod m) ⇔ ca ≡ cb
(mod cm).
Exercise 18.3. Prove Theorem 18.4.
Theorem 18.5. Let m > 0 and let d = gcd(c, m). Then
ca ≡ cb
(mod m) ⇒ a ≡ b (mod
m
).
d
Proof. Since d = gcd(c, m) we can write c = d( dc ) and m = d( md ). Then
gcd( dc , md ) = 1. Now rewriting ca ≡ cb (mod m) we have
d
c
m
c
a ≡ d b (mod d ).
d
d
d
Since m > 0, d > 0, so by Theorem 18.4 we have
c
m
c
a ≡ b (mod ).
d
d
d
Now since gcd( dc , md ) = 1, by Theorem 18.3
a ≡ b (mod
m
).
d
74
CHAPTER 18. MORE PROPERTIES OF CONGRUENCES
Theorem 18.6. If m > 0 and a ≡ b (mod m) we have
gcd(a, m) = gcd(b, m).
Proof. Since a ≡ b (mod m) we have a − b = mt for some t. So we can write
(1)
a = mt + b
and
(2)
b = m(−t) + a.
Let d = gcd(m, a) and e = gcd(m, b). Since e | m and e | b, from (1) e | a so
e is a common divisor of m and a. Hence e ≤ d. Using (2) we see similarly
that d ≤ e. So d = e.
Corollary 18.2. Let m > 0. Let a ≡ b (mod m). Then a has an inverse
modulo m if and only if b does.
Proof. Immediate from Theorems 18.1, 18.2 and 18.6.
Exercise 18.4. Determine whether or not each of the following is true. Give
reasons in each case.
(1) x ≡ 3 (mod 7) ⇒ gcd(x, 7) = 1
(2) gcd(68019, 3) = 3
(3) 12x ≡ 15 (mod 35) ⇒ 4x ≡ 5 (mod 7)
(4) x ≡ 6 (mod 12) ⇒ gcd(x, 12) = 6
(5) 3x ≡ 3y (mod 17) ⇒ x ≡ y (mod 17)
(6) 5x ≡ y (mod 6) ⇒ 15x ≡ 3y (mod 18)
(7) 12x ≡ 12y (mod 15) ⇒ x ≡ y (mod 5)
(8) x ≡ 73 (mod 75) ⇒ x mod 75 = 73
(9) x ≡ 73 (mod 75) and 0 ≤ x < 75 ⇒ x = 73
(10) There is no integer x such that
12x ≡ 7 (mod 33).
Chapter 19
Residue Classes
Definition 19.1. Let m > 0 be given. For each integer a we define
(1)
[a] = {x : x ≡ a
(mod m)}.
In other words, [a] is the set of all integers that are congruent to a modulo
m. We call [a] the residue class of a modulo m. Some people call [a] the
congruence class or equivalence class of a modulo m.
Theorem 19.1. For m > 0 we have
(2)
[a] = {mq + a | q ∈ Z}.
Proof. x ∈ [a] ⇔ x ≡ a (mod m) ⇔ m | x − a ⇔ x − a = mq for some
q ∈ Z ⇔ x = mq + a for some q ∈ Z. So (2) follows from the definition
(1).
Note that [a] really depends on m and it would be more accurate to write
[a]m instead of [a], but this would be too cumbersome. Nevertheless it should
be kept clearly in mind that [a] depends on some understood value of m.
Remark 19.1. Two alternative ways to write (2) are
(3)
[a] = {mq + a | q = 0, ±1, ±2, . . . }
or
(4)
[a] = {. . . , −2m + a, −m + a, a, m + a, 2m + a, . . . }.
75
76
CHAPTER 19. RESIDUE CLASSES
Exercise 19.1. Show that if m = 2 then [1] is the set of all odd integers and
[0] is the set of all even integers. Show also that Z = [0] ∪ [1] and [0] ∩ [1] = ∅.
Exercise 19.2. Show that if m = 3, then [0] is the set of integers divisible
by 3, [1] is the set of integers whose remainder when divided by 3 is 1, and
[2] is the set of integers whose remainder when divided by 3 is 2. Show also
that Z = [0] ∪ [1] ∪ [2] and [0] ∩ [1] = [0] ∩ [2] = [1] ∩ [2] = ∅.
Theorem 19.2. For a given modulus m > 0 we have:
[a] = [b] ⇔ a ≡ b (mod m).
Proof. “⇒” Assume [a] = [b]. Note that since a ≡ a (mod m) we have
a ∈ [a]. Since [a] = [b] we have a ∈ [b]. By definition of [b] this gives a ≡ b
(mod m), as desired.
“⇐” Assume a ≡ b (mod m). We must prove that the sets [a] and [b] are
equal. To do this we prove that every element of [a] is in [b] and vice-versa.
Let x ∈ [a]. Then x ≡ a (mod m). Since a ≡ b (mod m), by transitivity
x ≡ b (mod m) so x ∈ [b]. Conversely, if x ∈ [b], then x ≡ b (mod m). By
symmetry since a ≡ b (mod m), b ≡ a (mod m), so again by transitivity
x ≡ a (mod m) and x ∈ [a]. This proves that [a] = [b].
Theorem 19.3. Given m > 0. For every a there is a unique r such that
[a] = [r]
and 0 ≤ r < m.
Proof. Let r = a mod m. Then by Exercise 15.1 (p. 59) we have a ≡ r
(mod m). By definiton of a mod m we have 0 ≤ r < m. Since a ≡ r
(mod m) by Theorem 19.2, [a] = [r]. To prove that r is unique, suppose
also [a] = [r ′ ] where 0 ≤ r ′ < m. By Theorem 19.2 this implies that a ≡ r ′
(mod m). This, together with 0 ≤ r ′ < m, implies by Theorem 15.4 that
r ′ = a mod m = r.
Theorem 19.4. Given m > 0, there are exactly m distinct residue classes
modulo m, namely,
[0], [1], [2], . . . , [m − 1].
Proof. By Theorem 19.3 we know that every residue class [a] is equal to one
of the residue classes: [0], [1], . . . , [m − 1]. So there are no residue classes
not in this list. These residue classes are distinct by the uniqueness part of
Theorem 19.3, namely if 0 ≤ r1 < m and 0 ≤ r2 < m and [r1 ] = [r2 ], then
by the uniqueness part of Theorem 19.3 we must have r1 = r2 .
77
Exercise 19.3. Given the modulus m > 0 show that [a] = [a + m] and
[a] = [a − m] for all a.
Exercise 19.4. For any m > 0, show that if x ∈ [a] then [a] = [x].
Definition 19.2. Any element x ∈ [a] is said to be a representative of the
residue class [a].
By Exercise 19.4 if x is a representative of [a] then [x] = [a], that is, any
element of a residue class may be used to represent it.
Exercise 19.5. For any m > 0, show that if [a] ∩ [b] = ∅ then [a] = [b].
Exercise 19.6. For any m > 0, show that if [a] = [b] then [a] ∩ [b] = ∅.
Exercise 19.7. Let m = 2. Show that
[0] = [2] = [4] = [32] = [−2] = [−32]
and
[1] = [3] = [−3] = [31] = [−31].
78
CHAPTER 19. RESIDUE CLASSES
Chapter 20
Zm and Complete Residue
Systems
Throughout this section we assume a fixed modulus m > 0.
Definition 20.1. We define
Zm = {[a] | a ∈ Z},
that is, Zm is the set of all residue classes modulo m. We call Zm the ring
of integers modulo m. In the next chapter we shall show how to add and
multiply residue classes. This makes Zm into a ring. See Appendix A for
the definition of ring. Often we drop the ring and just call Zm the integers
modulo m. From Theorem 19.4
Zm = {[0], [1], . . . , [m − 1]}
and since no two of the residue classes [0], [1], . . . , [m − 1] are equal we see
that Zm has exactly m elements. By Exercise 19.4 if we choose
a0 ∈ [0], a1 ∈ [1], . . . , am−1 ∈ [m − 1]
then
[a0 ] = [0], [a1 ] = [1], . . . , [am−1 ] = [m − 1].
So we also have
Zm = {[a0 ], [a1 ], . . . , [am−1 ]}.
79
80
CHAPTER 20. ZM AND COMPLETE RESIDUE SYSTEMS
Example 20.1. If m = 4 we have, for example,
8 ∈ [0], 5 ∈ [1], −6 ∈ [2], 11 ∈ [3].
And hence:
Z4 = {[8], [5], [−6], [11]}.
Definition 20.2. A set of m integers
{a0 , a1 , . . . , am−1 }
is called a complete residue system modulo m if
Zm = {[a0 ], [a1 ], . . . , [am−1 ]}.
Remark 20.1. A complete residue system modulo m is sometimes called a
complete set of representatives for Zm .
Example 20.2. By Theorem 19.4, p. 76, for m > 0
{0, 1, 2, . . . , m − 1}
is a complete residue system modulo m.
Example 20.3. From the above discussion it is clear that for each m > 0
there are infinitely many distinct complete residue systems modulo m. For
example, here are some examples of complete residue systems modulo 5:
1. {0, 1, 2, 3, 4}
2. {0, 1, 2, −2, −1}
3. {10, −9, 12, 8, 14}
4. {0 + 5n1 , 1 + 5n2 , 2 + 5n3 , 3 + 5n4 , 4 + 5n4 } where n1 , n2 , n3 , n4 , n5 may
be any integers.
Definition 20.3. The set {0, 1, . . . , m − 1} is called the set of least nonnegative residues modulo m.
Theorem 20.1. Let m > 0 be given.
81
(1) If m = 2k, then
{0, 1, 2, . . . , k − 1, k, −(k − 1), . . . , −2, −1}
is a complete residue system modulo m.
(2) If m = 2k + 1, then
{0, 1, 2, . . . , k, −k, . . . , −2, −1}
is a complete residue system modulo m.
Proof of (1). Since if m = 2k
Zm = {[0], [1], . . . , [k], [k + 1], . . . , [k + i], [k + k − 1]},
it suffices to note that by Exercise 19.3 we have
[k + i] = [k + i − 2k] = [−k + i] = [−(k − i)].
So
[k + 1] = [−(k − 1)], [k + 2] = [−(k − 2)], . . . , [k + k − 1] = [−1],
as desired.
Proof of (2). In this case
[k + i] = [−(2k + 1) + k + i] = [−k + i + 1] = [−(k − i + 1)]
so
as desired.
[k + 1] = [−k], [k + 2] = [−(k − 1)], . . . , [2k] = [−1],
Definition 20.4. The complete residue system modulo m given in Theorem
20.1 is called the least absolute residue system modulo m.
Remark 20.2. If one chooses in each residue class [a] the smallest nonnegative
integer one obtains the least nonnegative residue system. If one chooses
in each residue class [a] an element of smallest possible absolute value one
obtains the least absolute residue system.
Exercise 20.1. Find both the least nonnegative residue system and the least
absolute residues for each of the moduli given below. Also, in each case find
a third complete residue system different from these two.
m = 3,
m = 4,
m = 5,
m = 6,
m = 7,
m = 8.
82
CHAPTER 20. ZM AND COMPLETE RESIDUE SYSTEMS
Chapter 21
Addition and Multiplication in
Zm
In this chapter we show how to define addition and multiplication of residue
classes modulo m. With respect to these binary operations Zm is a ring as
defined in Appendix A.
Definition 21.1. For [a], [b] ∈ Zm we define
[a] + [b] = [a + b]
and
[a][b] = [ab].
Example 21.1. For m = 5 we have
[2] + [3] = [5],
and
[2][3] = [6].
Note that since 5 ≡ 0 (mod 5) and 6 ≡ 1 (mod 5) we have [5] = [0] and
[6] = [1] so we can also write
[2] + [3] = [0]
[2][3] = [1].
83
84
CHAPTER 21. ADDITION AND MULTIPLICATION IN ZM
Since a residue class can have many representatives, it is important to
check that the rules given in Definition 21.1 do not depend on the representatives chosen. For example, when m = 5 we know that
[7] = [2] and [11] = [21]
so we should have
[7] + [11] = [2] + [21]
and
[7][11] = [2][21].
In this case we can check that
[7] + [11] = [18] and [2] + [21] = [23].
Now 23 ≡ 18 (mod 5) since 5 | 23 − 18. Hence [18] = [23], as desired. Also
[7][11] = [77] and [2][21] = [42]. Then 77 − 42 = 35 and 5 | 35 so 77 ≡ 42
(mod 5) and hence [77] = [42], as desired.
Theorem 21.1. For any modulus m > 0 if [a] = [b] and [c] = [d] then
[a] + [c] = [b] + [d]
and
[a][c] = [b][d].
Proof. (This follows immediately from Theorem 15.3 (p. 61) and Theorem
19.2 (p. 76).)
Exercise 21.1. Prove Theorem 21.1.
When performing addition and multiplication in Zm using the rules in
Definition 21.1, due to Theorem 21.1, we may at any time replace [a] by [a′ ]
if a ≡ a′ (mod m). This will sometimes make calculations easier.
Example 21.2. Take m = 151. Then 150 ≡ −1 (mod 151) and 149 ≡ −2
(mod 151), so
[150][149] = [−1][−2] = [2]
and
[150] + [149] = [−1] + [−2] = [−3] = [148]
since 148 ≡ −3 (mod 151).
85
When working with Zm it is often useful to write all residue classes in
the least nonnegative residue system, as we do in constructing the following
addition and multiplication tables for Z4 .
+
[0]
[1]
[2]
[3]
[0]
[0]
[1]
[2]
[3]
[1]
[1]
[2]
[3]
[0]
[2]
[2]
[3]
[0]
[1]
[3]
[3]
[0]
[1]
[2]
·
[0]
[1]
[2]
[3]
[0]
[0]
[0]
[0]
[0]
[1]
[0]
[1]
[2]
[3]
[2]
[0]
[2]
[0]
[2]
[3]
[0]
[3]
[2]
[1]
Recall that by Exercise 15.1 (p. 59) we have for all a and m > 0
a ≡ a mod m
(mod m).
So using residue classes modulo m this gives
[a] = [a mod m].
Hence,
[a] + [b] = [(a + b) mod m]
[a][b] = [(ab) mod m]
So if a and b are in the set {0, 1, . . . , m − 1}, these equations give us a
way to obtain representations of the sum and product of [a] and [b] in the
same set. This leads to an alternative way to define Zm and addition and
multiplication in Zm . For clarity we will use different notation.
Definition 21.2. For m > 0 define
Jm = {0, 1, 2, . . . , m − 1}
and for a, b ∈ Jm define
a ⊕ b = (a + b) mod m
a ⊙ b = (ab) mod m.
86
CHAPTER 21. ADDITION AND MULTIPLICATION IN ZM
Remark 21.1. Jm with ⊕ and ⊙ as defined is isomorphic to Zm with addition
and multiplication given by Definition 21.1. [Students taking Elementary
Abstract Algebra will learn a rigorous definition of the term isomorphic. For
now, we take “isomorphic” to mean “has the same form.”] The addition and
multiplication tables for J4 are:
⊕
0
1
2
3
0
0
1
2
3
1
1
2
3
0
2
2
3
0
1
3
3
0
1
2
⊙
0
1
2
3
0
0
0
0
0
1
0
1
2
3
2
0
2
0
2
3
0
3
2
1
Exercise 21.2. Prove that for every modulus m > 0 we have for all a, b ∈ Jm
and
[a] + [b] = [a ⊕ b],
[a][b] = [a ⊙ b].
Exercise 21.3. Construct addition and multiplication tables for J5 .
Exercise 21.4. Without doing it, tell how to obtain addition and multiplication tables for Z5 from the work in Exercise 21.3.
Example 21.3. Let’s solve the congruence
(1)
272x ≡ 901 (mod 9).
Using residue classes modulo 9 we see that (1) is equivalent to
(2)
[272x] = [901]
which is equivalent to
(3)
[272][x] = [901]
which is equivalent to
(4)
[2][x] = [1].
Now we know [x] ∈ {[0], [1], . . . , [8]} so by trial and error we see that x = 5
is a solution.
Chapter 22
The Groups Um
Definition 22.1. Let m > 0. A residue class [a] ∈ Zm is called a unit if
there is another residue class [b] ∈ Zm such that [a][b] = [1]. In this case [a]
and [b] are said to be inverses of each other in Zm .
Theorem 22.1. Let m > 0. A residue class [a] ∈ Zm is a unit if and only
if gcd(a, m) = 1.
Proof. Let [a] be a unit. Then there is some [b] such that [a][b] = [1]. Hence
[ab] = [1] so ab ≡ 1 (mod m). So by Theorem 18.2, p. 72, gcd(a, m) = 1.
To prove the converse, let gcd(a, m) = 1. Then by Theorem 18.1, page
71, there is an integer a∗ such that aa∗ ≡ 1 (mod m). Hence, [aa∗ ] = [1]. So
[a][a∗ ] = [aa∗ ] = [1], and we can take b = a∗ .
Note that from Theorem 18.6 we see that if [a] = [b] (i.e., a ≡ b (mod m))
then gcd(a, m) = 1 ⇔ gcd(b, m) = 1. So in checking whether or not a residue
class is a unit we can use any representative of the class.
Exercise 22.1. Show that [1] and [m − 1] are always units in Zm . Hint:
[m − 1] = [−1].
Definition 22.2. The set of all units in Zm is denoted by Um and is called
the group of units of Zm . See Appendix A for the definition of a group.
Theorem 22.2. Let m > 0, then
Um = {[i] | 1 ≤ i ≤ m and gcd(i, m) = 1}.
87
88
CHAPTER 22. THE GROUPS UM
Proof. We know that if [a] ∈ Zm then [a] = [i] where 0 ≤ i ≤ m − 1. If
m = 1 then Zm = Z1 = {[0]} = {[1]} and since [1][1] = [1], [1] is a unit,
U1 = {[1]} and the theorem holds. If m ≥ 2, then gcd(i, m) = 1 can only
happen if 1 ≤ i ≤ m − 1, since gcd(0, m) = gcd(m, m) = m = 1. So the
theorem follows from Theorem 22.1 and the above remarks.
Theorem 22.3. (Um is a group
1
under multiplication.)
(1) If [a], [b] ∈ Um then [a][b] ∈ Um .
(2) For all [a], [b], [c] in Um we have ([a][b])[c] = [a]([b][c]).
(3) [1][a] = [a][1] = [a] for all [a] ∈ Um .
(4) For each [a] ∈ Um there is a [b] ∈ Um such that [a][b] = [1].
(5) For all [a], [b] ∈ Um we have [a][b] = [b][a].
Exercise 22.2. Prove Theorem 22.3.
Example 22.1. Using Theorem 22.2 we see that
U15 = {[1], [2], [4], [7], [8], [11], [13], [14]}
= {[1], [2], [4], [7], [−7], [−4], [−2], [−1]}.
Note that using absolute least residue modulo 15 simplifies multiplication
somewhat. Rather than write out the entire multiplication table, we just find
the inverse of each element of U15 :
[1][1] = [1]
[2][−7] = [2][8] = [1]
[4][4] = [1]
[7][−2] = [7][13] = [1]
[−4][−4] = [11][11] = [1]
[−1][−1] = [14][14] = [1].
Exercise 22.3. Find the elements of U7 in both least nonnegative and absolute least residue form and find the inverse of each element, as in the example
above.
1
Actually (1)–(4) are all that is required for Un to be a group. Property (5) says that
Un is an Abelian group. See Appendix A.
89
Definition 22.3. If X is a set, the number of elements in X is denoted by
|X|.
Example 22.2. |{1}| = 1, |{0, 1, 3, 9}| = 4, |Zm | = m if m > 0.
Definition 22.4. If m ≥ 1,
φ(m) = |{i ∈ Z | 1 ≤ i ≤ m and gcd(i, m) = 1}|.
The function φ is called the Euler phi function or the Euler totient function.
Corollary 22.1. If m > 0,
|Um | = φ(m).
Note that
U1
U2
U3
U4
U5
U6
U7
= {[1]} so φ(1) = 1
= {[1]} so φ(2) = 1
= {[1], [2]} so φ(3) = 2
= {[1], [3]} so φ(4) = 2
= {[1], [2], [3], [4]} so φ(5) = 4
= {[1], [5]} so φ(6) = 2
= {[1], [2], [3], [4], [5], [6]} so φ(7) = 6.
Generally φ(m) is not easy to calculate. However, the following theorems
show that once the prime factorization of m is given, computing φ(m) is easy.
Theorem 22.4. If a > 0 and b > 0 and gcd(a, b) = 1, then
φ(ab) = φ(a)φ(b).
Theorem 22.5. If p is prime and n > 0 then
φ (pn ) = pn − pn−1 .
Theorem 22.6. Let p1 , p2 , . . . , pk be distinct primes and let n1 , n2 , . . . , nk be
positive integers, then
φ (pn1 1 pn2 2 · · · pnk k ) = pn1 1 − p1n1 −1 · · · pnk k − pknk −1 .
90
CHAPTER 22. THE GROUPS UM
Before discussing the proofs of these three theorems, let’s illustrate their
use:
φ(12) = φ 22 · 3 = 22 − 21 31 − 30 = 2 · 2 = 4
φ(9000) = φ 23 · 53 · 32 = 23 − 22 53 − 52 32 − 31
= 4 · 100 · 6 = 2400.
Note that if p is any prime then
φ(p) = p − 1.
I will sketch a proof of Theorem 22.4 in Exercise 22.6 below. Now I give
the proof of Theorem 22.5.
Proof of Theorem 22.5. We want to count the number of elements in the
set A = {1, 2, . . . , pn } that are relatively prime to pn . Let B be the set of
elements of A that have a factor > 1 in common with A. Note that if b ∈ B
and gcd (b, pn ) = d > 1, then d is a factor of pn and d > 1 so d has p as a
factor. Hence b = pk, for some k, and p ≤ b ≤ pn , so p ≤ kp ≤ pn . It follows
that 1 ≤ k ≤ pn−1 . That is,
B = p, 2p, 3p, . . . , kp, . . . , pn−1 p .
We are interested in the number of elements of A not in B. Since |A| = pn
and |B| = pn−1 , this number is pn − pn−1 . That is, φ (pn ) = pn − pn−1 .
The proof of Theorem 22.6 follows from Theorems 22.4 and 22.5. The
proof is by induction on n and is quite similar to the proof of Theorem 13.1
(2) on page 50, so I omit the details.
Exercise 22.4. Find the sets Um , for 8 ≤ m ≤ 20. Note that |Um | =
φ(m). Use Theorem 22.6 to calculate φ(m) and check that you have the
right number of elements for each set Um , 8 ≤ m ≤ 20.
Exercise 22.5. Show that if
m = pn1 1 pn2 2 · · · pnk k
where p1 , . . . , pk are distinct primes and each ni ≥ 1, then
1
1
1
φ(m) = m 1 −
1−
··· 1−
.
p1
p2
pk
91
Exercise 22.6. Let a and b be relatively prime positive integers. Write
n = ab. Define the mapping f by the rule
f ([x]n ) = ([x]a , [x]b ).
Here we denote the residue class of x modulo m by [x]m . First illustrate each
of the following for the special case a = 3 and b = 5. Then prove each in
general. (The proof is difficult and is optional.)
1. f : Zn → Za × Zb is one-to-one and onto. (This is called the Chinese
Remainder Theorem.)
2. f : Un → Ua × Ub is also a one-to-one, onto mapping.
3. Conclude from (2) that φ(ab) = φ(a)φ(b).
92
CHAPTER 22. THE GROUPS UM
Chapter 23
Two Theorems of Euler and
Fermat
Fermat’s Big Theorem or, as it is also called, Fermat’s Last Theorem states
that xn + y n = z n has no solutions in positive integers x, y, z when n > 2.
This was proved by Andrew Wiles in 1995 over 350 years after it was first
mentioned by Fermat. The theorem that concerns us in this chapter is Fermat’s Little Theorem. This theorem is much easier to prove, but has more
far reaching consequences for applications to cryptography and secure transmission of data on the Internet. The first theorem below is a generalization
of Fermat’s Little Theorem due to Euler.
Theorem 23.1 (Euler’s Theorem). If m > 0 and a is relatively prime to
m then
aφ(m) ≡ 1
(mod m).
Theorem 23.2 (Fermat’s Little Theorem). If p is prime and a is relatively prime to p then
ap−1 ≡ 1 (mod p).
Let’s look at some examples. Take m = 12 then
φ(m) = φ 22 · 3 = 22 − 2 (3 − 1) = 4.
93
94
CHAPTER 23. TWO THEOREMS OF EULER AND FERMAT
The positive integers a < m with gcd(a, m) = 1 are 1, 5, 7 and 11.
14 ≡ 1 (mod 12) is clear
52 ≡ 1 (mod 12) since 12 | 25 − 1
2 2
∴ 5
≡ 12 (mod 12)
∴ 54 ≡ 1 (mod 12).
Now 7 ≡ −5 (mod 12) and since 4 is even
74 ≡ 54 (mod 12)
∴ 74 ≡ 1 (mod 12).
11 ≡ −1 (mod 12) and again since 4 is even we have
114 ≡ (−1)4
(mod 12)
and
114 ≡ 1 (mod 12).
So we have verified Theorem 23.1 for the single case m = 12.
Exercise 23.1. Verify that Theorem 23.2 holds if p = 5 by direct calculation
as in the above example.
Definition 23.1. (Powers of residue classes.) If [a] ∈ Um define [a]1 = [a]
and for n > 1, [a]n = [a][a] · · · [a] where there are n copies of [a] on the right.
Theorem 23.3. If [a] ∈ Um , then [a]n ∈ Um for n ≥ 1 and [a]n = [an ].
Proof. We prove that [a]n = [an ] ∈ Um for n ≥ 1 by induction on n.
If n = 1, [a]1 = [a] = [a1 ] and by assumption [a] ∈ Um . Suppose
[a]k = ak ∈ Um
for some k ≥ 1. Then
[a]k+1 = [a]k [a]
= ak [a] by the induction hypothesis
by Definition 21.1, p. 83
= ak a
k+1
since ak a = ak+1 .
= a
So by the PMI, the theorem holds for n ≥ 1.
95
Note that for fixed m > 0 if gcd(a, m) = 1 then [a] ∈ Um . And using
Theorem 23.3 we have
an ≡ 1 (mod m) ⇐⇒ [an ] = [1] ⇐⇒ [a]n = [1].
It follows that Euler’s Theorem (Theorem 23.1) is equivalent to the following theorem.
Theorem 23.4. If m > 0 and [a] ∈ Um then
[a]φ(m) = [1].
A proof of Theorem 23.4 is outlined in the following exercise.
Exercise 23.2 (Optional). Let Um = {X1 , X2 , . . . , Xφ(m) }. Here we write
Xi for a residue class in Um to simplify notation.
1. Show that if X ∈ Um then
{XX1 , XX2, · · · , XXφ(m) } = Um .
2. Show that if X ∈ Um then
XX1 XX2 · · · XXφ(m) = X1 X2 · · · Xφ(m) .
3. Let A = X1 X2 · · · Xφ(m) . Show that if X ∈ Um then X φ(m) A = A.
4. Conclude from (3) that X φ(m) = [1] and hence Theorem 23.4 is true.
Also Theorem 23.4 is an easy consequence of Lagrange’s Theorem, which
students who take (or have taken) a course in abstract algebra will learn
about (or will already know).
Exercise 23.3. Show that Fermat’s Little Theorem follows from Euler’s
Theorem.
Exercise 23.4. Show that if p is prime then ap ≡ a (mod p) for all integers
a. Hint: Consider two cases: I. gcd(a, p) = 1 and II. gcd(a, p) > 1. Note
that in the second case p | a.
Exercise 23.5. Let m > 0. Let gcd(a, m) = 1. Show that aφ(m)−1 is an
inverse for a modulo m. (See Theorem 18.1, p. 71.)
96
CHAPTER 23. TWO THEOREMS OF EULER AND FERMAT
Exercise 23.6. For all a ∈ {1, 2, 3, 4, 5, 6} find the inverse a∗ of a modulo 7
by use of Exercise 23.5. Choose a∗ in each case so that 1 ≤ a∗ ≤ 6.
Example 23.1. Note that Fermat’s Little Theorem can be used to simplify
the computation of an mod p where p is prime. Recall that if an ≡ r (mod p)
where 0 ≤ r < p, then an mod p = r. We can do two things to simplify the
computation:
(1) Replace a by a mod p.
(2) Replace n by n mod (p − 1).
Suppose we want to calculate
12347865435 mod 11.
Note that 1234 ≡ −1+2−3+4 (mod 11), that is, 1234 ≡ 2 (mod 11). Since
gcd(2, 11) = 1 we have 210 ≡ 1 (mod 11). Now 7865435 = (786543) · 10 + 5
so
27865435 ≡ 2(786543)·10+5 (mod 11)
786543 5
≡ 210
· 2 (mod 11)
786543
5
≡1
· 2 (mod 11)
5
≡ 2 (mod 11),
and 25 = 32 ≡ 10 (mod 11). Hence,
12347865435 ≡ 10 (mod 11).
It follows that
12347865435 mod 11 = 10.
Exercise 23.7. Use the technique in the above example to calculate
281202 mod 13.
[Here you cannot use the mod 11 trick, of course.]
Chapter 24
Probabilistic Primality Tests
According to Fermat’s Little Theorem, if p is prime and 1 ≤ a ≤ p − 1, then
ap−1 ≡ 1 (mod p).
The converse is also true in the following sense:
Theorem 24.1. If m ≥ 2 and for all a such that 1 ≤ a ≤ m − 1 we have
am−1 ≡ 1 (mod m)
then m must be prime.
Proof. If the hypothesis holds, then for all a with 1 ≤ a ≤ m − 1, we know
that a has an inverse modulo m, namely, am−2 is an inverse for a modulo m.
By Theorem 18.2, this says that for 1 ≤ a ≤ m − 1, gcd(a, m) = 1. But if m
were not prime, then we would have m = ab with 1 < a < m, 1 < b < m.
Then gcd(a, m) = a > 1, a contradiction. So m must be prime.
Using the above theorem to check that p is prime we would have to check
that ap−1 ≡ 1 (mod p) for a = 1, 2, 3, . . . , p − 1. This is a lot of work.
Suppose we just know that 2m−1 ≡ 1 (mod m) for some m > 2. Must m be
prime? Unfortunately, the answer is no.The smallest composite m satisfying
2m−1 ≡ 1 (mod m) is m = 341.
Exercise 24.1. Use Maple (or do it via hand and or calculator) to verify
that 2340 ≡ 1 (mod 341) and that 341 is not prime.
97
98
CHAPTER 24. PROBABILISTIC PRIMALITY TESTS
The moral is that even if 2m−1 ≡ 1 (mod m), the number m need not be
prime.
On the other hand, consider the case of m = 63. Note that
26 = 64 ≡ 1 (mod 63).
Hence, 26 ≡ 1 (mod 63). Raising both sides to the 10th power we have
260 ≡ 1
(mod 63).
Then multiplying both sides by 22 we get
262 ≡ 4 (mod 63)
since
we have
4 ≡ 1
262 ≡ 1
(mod 63)
(mod 63).
This tells us that 63 is not prime, without factoring 63. We emphasize that
in general if 2m−1 ≡ 1 (mod m) then we can be sure that m is not prime.
FACT. There are 455,052,511 odd primes p ≤ 1010 , all of which satisfy
2p−1 ≡ 1 (mod p). There are only 14,884 composite numbers 2 < m ≤ 1010
that satisfy 2m−1 ≡ 1 (mod m). Thus, if 2 < m ≤ 1010 and m satisfies
2m−1 ≡ 1 (mod m), the probability m is prime is
455, 052, 511
≈ .999967292.
455, 052, 511 + 14, 884
In other words, if you find that 2m−1 ≡ 1 (mod m), then it is highly likely
(but not a certainty) that m is prime, at least when m ≤ 1010 . Thus the
following Maple procedure will almost always give the correct answer:
> is_prob_prime:=proc(n)
if n <=1 or Power(2,n-1) mod n <> 1 then
return "not prime";
else
return "probably prime";
end if;
end proc:
99
Note that the Maple command Power(a,n-1) mod n is an efficient way
to compute an−1 mod n. We discuss this in more detail later. The procedure
is_prob_prime(n) just defined returns “probably prime” if 2n−1 mod n = 1
and “not prime” if n ≤ 1 or if 2n−1 mod n = 1. If the answer is “not prime”,
then we know definitely that n is not prime. If the answer is “probably
prime”, we know that there is a very small probability that n is not prime.
In practice, there are better probabilistic primality tests than that mentioned above. For more details see, for example, “Elementary Number Theory,” Fourth Edition, by Kenneth Rosen.
The built-in Maple procedure isprime is a very sophisticated probabilistic primality test. The command isprime(n) returns false if n is not prime
and returns true if n is probably prime. So far no one has found an integer
n for which isprime(n) gives the wrong answer.
One might ask what happens if we use 3 instead of 2 in the above probabilistic primality test. Or, better yet, what if we evaluate am−1 mod m for
several different values of a.
Consider the following data:
The number of primes ≤ 106 is 78,498.
The number of composite numbers m ≤ 106 such that 2m−1 ≡ 1 (mod m)
is 245.
The number of composite numbers m ≤ 106 such that 2m−1 ≡ 1 (mod m)
and 3m−1 ≡ 1 (mod m) is 66.
The number of composite numbers m ≤ 106 such that am−1 ≡ 1 (mod m)
for a ∈ {2, 3, 5, 7, 11, 13, 17, 19, 31, 37, 41} is 0.
Thus, we have the following result:
If m ≤ 106 and am−1 ≡ 1 (mod m) for a ∈ {2, 3, 5, 7, 11, 17, 19, 31, 37, 41},
then m is prime.
The above results for m ≤ 106 were found using Maple.
If m > 106 and am−1 ≡ 1 (mod m) for a ∈ {2, 3, 5, 7, 11, 17, 19, 31, 37, 41},
it is highly likely, but not certain, that m is prime. Actually the primality
test isprime that is built into Maple uses a somewhat different idea.
Exercise 24.2. Use Maple to show that
100
CHAPTER 24. PROBABILISTIC PRIMALITY TESTS
(1) 390 ≡ 1 (mod 91), but 91 is not prime.
(2) 2m−1 ≡ 1 (mod m) and 3m−1 ≡ 1 (mod m) for m = 1105, but 1105 is
not prime.
[Hints. Note that an ≡ 1 (mod m) ⇔ an mod m = 1. In Maple, 390
is written 3^90 and 390 mod 91 is written 3^90 mod 91. A faster way to
compute an mod m in Maple is to use the command Power(a,n) mod m .
Recall that ifactor(m) is the command to factor m.]
Chapter 25
The Base b Representation of n
Definition 25.1. Let b ≥ 2 and n > 0. We write
(1)
n = [ak , ak−1 , . . . , a1 , a0 ]b
if and only if for some k ≥ 0
n = ak bk + ak−1 bk−1 + · · · + a1 b + a0
where ai ∈ {0, 1, . . . , b − 1} for i = 0, 1, . . . , k. [ak , ak−1 , . . . , a1 , a0 ] is called a
base b representation of n.
Remark 25.1. Base b is called
binary
ternary
octal
decimal
hexadecimal
if
if
if
if
if
b = 2,
b = 3,
b = 8,
b = 10,
b = 16.
If b is understood, especially if b = 10, we write ak ak−1 · · · a1 a0 in place of
[ak , ak−1 , . . . , a1 , a0 ]10 . In the case of b = 16, which is used frequently in
computer science, the “digits” 10, 11, 12, 13, 14 and 15 are replaced by A,
B, C, D, E and F , respectively.
For a fixed base b ≥ 2, the numbers ai ∈ {0, 1, 2, . . . , b − 1} in equation
(1) are called the digits of the base b representation of n. In the binary case
ai ∈ {0, 1} and the ai ’s are called bits (bi nary digits).
101
102
CHAPTER 25. THE BASE B REPRESENTATION OF N
Here are a few examples:
(1) 267 = [5, 3, 1]7
since 267 = 5 · 72 + 3 · 7 + 1.
(2) 147 = [1, 0, 0, 1, 0, 0, 1, 1]2
since 147 = 1 · 27 + 0 · 26 + 0 · 25 + 1 · 24 + 0 · 23 + 0 · 22 + 1 · 2 + 1.
(3) 4879 = [4, 8, 7, 9]10
since 4879 = 4 · 103 + 8 · 102 + 7 · 10 + 9.
(4) 10705679 = [A, 3, 5, B, 0, F ]16
since 10705679 = 10 · 165 + 3 · 164 + 5 · 163 + 11 · 162 + 0 · 16 + 15.
(5) 107056791 = [107, 56, 791]1000
since 107056791 = 107 · 10002 + 56 · 1000 + 791.
Theorem 25.1. If b ≥ 2, then every n > 0 has a unique base b representation
of the form n = [ak , . . . , a1 , a0 ]b with ak > 0.
Proof. Apply repeatedly the Division Algorithm as follows:
n = bq0 + r0 , 0 ≤ r0 < b
q0 = bq1 + r1 , 0 ≤ r1 < b
q1 = bq2 + r2 , 0 ≤ r2 < b
..
.
qk−1 = bqk + rk , 0 ≤ rk < b
qk = bqk+1 + rk+1 , 0 ≤ rk+1 < b.
It is easy to see that if qk > 0:
n > q0 > q1 > · · · > qk .
Since this cannot go on forever we eventually obtain qℓ = 0 for some . Then
we have
qℓ−1 = b · 0 + rℓ .
I claim that n = [rℓ , rℓ−1 , . . . , r0 ] if is the smallest integer such that qℓ = 0.
To see this, note that
n = bq0 + r0
103
and
q0 = bq1 + r1 .
Hence
n = b (bq1 + r1 ) + r0
n = b2 q1 + br1 + r0 .
Continuing in this way we find that
n = bℓ+1 qℓ + bℓ rℓ + · · · + br1 + r0 .
And, since qℓ = 0 we have
n = bℓ rℓ + · · · + br1 + r0 ,
(∗)
which shows that
n = [rℓ , . . . , r1 , r0 ]b .
To see that this representation is unique, note that from (∗) we have
n = b bℓ−1 rℓ + · · · + r1 + r0 ,
0 ≤ r0 < b.
By the Division Algorithm it follows that r0 is uniquely determined by n,
as is the quotient q = bℓ−1 rℓ + · · · + r1 . A similar argument shows that r1
is uniquely determined. Continuing in this way we see that all the digits
rℓ , rℓ−1 , . . . , r0 are uniquely determined.
Example 25.1.
(1) We find the base 7 representation of 1,749.
1749 = 249 · 7 + 6
249 = 35 · 7 + 4
35 = 5 · 7 + 0
5=0·7+5
Hence 1749 = [5, 0, 4, 6]7.
104
CHAPTER 25. THE BASE B REPRESENTATION OF N
(2) We find the base 12 representation of 19,151.
19, 151 = 1595 · 12 + 11
1, 595 = 132 · 12 + 11
132 = 11 · 12 + 0
11 = 0 · 12 + 11
∴ 19, 151 = [11, 0, 11, 11]12.
(3) Find the base 10 representation of 1,203.
1203 = 120 · 10 + 3
120 = 12 · 10 + 0
12 = 1 · 10 + 2
1 = 0 · 10 + 1
∴ 1203 = [1, 2, 0, 3]10.
(4) Find the base 2 (binary) representation of 137.
137 = 2 · 68 + 1
68 = 2 · 34 + 0
34 = 2 · 17 + 0
17 = 2 · 8 + 1
8= 2·4+0
4= 2·2+0
2= 2·1+0
1= 2·0+1
∴ 137 = [1, 0, 0, 0, 1, 0, 0, 1]2.
Exercise 25.1. Generalize the following observations
3 = [1, 1]2
7 = [1, 1, 1]2
15 = [1, 1, 1, 1]2
31 = [1, 1, 1, 1, 1]2
63 = [1, 1, 1, 1, 1, 1]2
Prove your generalization. [HINT: See Exercise 2.5 on page 6.]
105
Exercise 25.2. Generalize the following observation:
8 = [2, 2]3
26 = [2, 2, 2]3
80 = [2, 2, 2, 2]3
242 = [2, 2, 2, 2, 2]3
Prove your generalization. [HINT: See Exercise 2.5 on page 6.]
Exercise 25.3. Generalize Exercises 25.1 and 25.2 to an arbitrary base b ≥ 2.
Remark 25.2. To find the binary representation of a small number, the following method is often easier than the above method:
Given n > 0 let 2n1 be the largest power of 2 satisfying 2n1 ≤ n. Let 2n2
be the largest power of 2 satisfying
2n2 ≤ n − 2n1 .
Let 2n3 be the largest power of 2 satisfying
2n3 ≤ n − 2n1 − 2n2 .
Note that at this point we have
0 ≤ n − (2n1 + 2n2 + 2n3 ) < n − (2n1 + 2n2 ) < n − 2n1 < n.
Continuing in this way, eventually we get
0 = n − (2n1 + 2n2 + · · · + 2nk ) .
Then n = 2n1 + 2n2 + · · · + 2nk , and this gives the binary representation of n.
Example 25.2. Take n = 137. Note that 21 = 2, 22 = 4, 23 = 8, 24 = 16,
25 = 32, 26 = 64, 27 = 128, and 28 = 256. Using the above method we
compute:
137 − 27 = 137 − 128 = 9,
9 − 23 = 1,
1 − 20 = 0.
So we have
137 = 27 + 9 = 27 + 23 + 1,
∴ 137 = 27 + 026 + 025 + 024 + 23 + 022 + 0 · 2 + 1.
So 137 = [1, 0, 0, 0, 1, 0, 0, 1]2.
106
CHAPTER 25. THE BASE B REPRESENTATION OF N
Exercise 25.4. Show how to use both methods to find the binary representation of 455.
Exercise 25.5. Make a vertical list of the binary representation of the integers 1 to 16.
Chapter 26
Computation of aN mod m
Let’s first consider the question: What is the smallest number of multiplications required to compute aN where N is any positive integer?
Suppose we want to calculate 28 . One way is to perform the following 7
multiplications:
22
23
24
25
26
27
28
=2·2=4
=2·4=8
= 2 · 8 = 16
= 2 · 16 = 32
= 2 · 32 = 64
= 2 · 64 = 128
= 2 · 128 = 256
But we can do it in only 3 multiplications:
22 = 2 · 2 = 4
2
24 = 22 = 4 · 4 = 16
2
28 = 24 = 16 · 16 = 256
In general, using the method:
a2 = a · a, a3 = a2 · a, a4 = a3 · a, . . . , an = an−1 · a
requires n − 1 multiplications to compute an .
107
108
CHAPTER 26. COMPUTATION OF AN MOD M
On the other hand if n = 2k then we can compute an by successive
squaring with only k multiplications:
a2 = a · a
2
2
a2 = a2 = a2 · a2
2 2
3
2
2
a2 = a2
= a2 · a2
..
.
Note that the fact that
..
.
k−1 2
k
k−1
k−1
a2 = a2
= a2 · a2
2k = 2k−1 2 = 2k−1 + 2k−1
together with the Laws of Exponents:
(an )m = anm
and
an · am = an+m
is what makes this method work. Note that if n = 2k then k is generally a
lot smaller than n − 1. For example,
1024 = 210
and 10 is quite a bit smaller than 1023.
If n is not a power of 2 we can use the following method to compute an .
The Binary Method for Exponentiation. Let n be a positive integer.
Let x be any real number. This is a method for computing xn .
Step 1. Find the binary representation
n = [ar , ar−1 , . . . , a0 ]2
for n.
109
Step 2. Compute the powers
2
r
3
x2 , x2 , x2 , . . . , x2
by successive squaring as shown above.
Step 3. Compute the product
r
r−1
xn = xar 2 · xar−1 2
· · · xa1 2 · xa0 .
[Note each ai is 0 or 1, so all needed factors were obtained in Step 2.]
Example 26.1. Let’s compute 315 . Note that 15 = 23 + 22 + 2 + 1 =
[1, 1, 1, 1]2. So this takes care of Step 1. For Step 2, we note that
32 = 3 · 3 = 9
2
32 = 9 · 9 = 81
3
32 = 81 · 81 = 6561
3
2
So 315 = 32 · 32 · 32 · 31 . For this we need 3 multiplications:
So we have
3 · 32 = 3 · 9 = 27
2
3 · 32 · 32 = 27 · 81 = 2187
3
2
22
3·3 ·3
32 = 2187 · 6561 = 14348907
315 = 14348907.
Note that we have used just 6 multiplications, which is less than the 14 it
would take if we used the naive method. Let’s not forget that some additional
effort was needed to compute the binary representation of 15, but not much.
Theorem 26.1. Computing xn using the binary method requires ⌊log2 (n)⌋
applications of the Division Algorithm and at most 2⌊log2 (n)⌋ multiplications.
Proof. If n = [ar , . . . , a0 ]2 , ar = 1, then n = 2r + · · · + a1 2 + a0 . Hence
(∗)
2r ≤ n ≤ 2r + 2r−1 + · · · + 2 + 1 = 2r−1 − 1 < 2r+1 .
Since log2 (2x ) = x and when 0 < a < b we have log2 (a) < log2 (b), we have
from (∗) that
log2 (2r ) ≤ log2 (n) < log2 2r+1
110
CHAPTER 26. COMPUTATION OF AN MOD M
or
r ≤ log2 (n) < r + 1.
Hence r = ⌊log2 (n)⌋. Note that r is the number of times we need to apply
the Division Algorithm to obtain the binary representation n = [ar , . . . , a0 ]2 ,
2
r
ar = 1. To compute the powers x, x2 , x2 , . . . , x2 by successive squaring
requires r = ⌊log2 (n)⌋ multiplications and similarly to compute the product
r
r−1
x2 · xar−1 2
· · · xa1 2 · xa0
requires r multiplicatons. So after obtaining the binary representation we
need at most 2r = 2⌊log2 (n)⌋ multiplications.
Use of a calculator to compute log2 (x): To find log2 (x) one may use
the formula
1
log2 (x) =
ln(x)
ln(2)
or
1
log2 (x) ≈
ln(x)
(0.69314718)
where ln(x) is the natural logarithm of x. For small values of x it is sometimes
faster to use the fact that r = ⌊log2 (x)⌋ is equivalent to
2r ≤ x < 2r+1 ,
that is, r is the largest positive integer such that 2r ≤ x. The Maple command
for log2 (x) is log[2](x).
Note that if we count an application of the Division Algorithm and a
multiplication as the same, the above tells us that we need at most 3⌊log2 (n)⌋
operations to compute xn . So, for example, if n = 106 , then it is easy to see
that 3⌊log2 (n)⌋ = 57. So we may compute x1,000,000 with only 57 operations.
Exercise 26.1. Calculate 3⌊log2 (n)⌋ for n = 2, 000, 000.
Exercise 26.2. Use the binary method to compute 225 .
Exercise 26.3. Approximately how many operations would be required to
compute 2n when n = 10100 ? Explain.
Exercise 26.4. Note that 6 multiplications are used to compute 315 using
the binary method. Show that one can compute 315 with fewer than 6 multiplications. [You will have to experiment.]
111
Computing an mod m. We use the binary method for exponentiation
with the added trick that after every multiplication we reduce modulo m,
that is, we divide by m and take the remainder. This keeps the products
from getting too big.
Example 26.2. We compute 315 mod 10:
32 = 3 · 3 = 9 ≡ 9 (mod 10)
34 = 9 · 9 = 81 ≡ 1 (mod 10)
38 ≡ 1 · 1 ≡ 1 ≡ 1 (mod 10)
∴ 315 = 38 · 34 · 32 · 31 ≡ 1 · 1 · 9 · 3 = 27 ≡ 7 (mod 10).
Note that 315 ≡ 7 (mod 10) implies that 315 mod 10 = 7. [Recall that on
page 109 we calculated that 315 = 14348907 which is clearly congruent to
7 mod 10, but the multiplications were not so easy.]
Example 26.3. Let’s find 2644 mod 645. It is easy to see that
644 = [1, 0, 1, 0, 0, 0, 0, 1, 0, 0]2
That is, 644 = 29 + 27 + 22 = 512 + 128 + 4. Now by successive squaring and
reducing modulo 645 we get
22
24
28
216
232
264
2128
2256
2512
= 2 · 2 = 4 ≡ 4 (mod 645)
≡ 4 · 4 = 16 ≡ 16 (mod 645)
≡ 16 · 16 = 256 ≡ 256 (mod 645)
≡ 256 · 256 = 65, 536 ≡ 391 (mod 645)
≡ 391 · 391 = 152, 881 ≡ 16 (mod 645)
≡ 16 · 16 = 256 ≡ 256 (mod 645)
≡ 256 · 256 = 65, 536 ≡ 391 (mod 645)
≡ 391 · 391 = 152, 881 ≡ 16 (mod 645)
≡ 16 · 16 = 256 ≡ 256 (mod 645).
Now
2644 = 2512 · 2128 · 24 ,
hence
2644 ≡ 256 · 391 · 16 (mod 645).
112
CHAPTER 26. COMPUTATION OF AN MOD M
So
256 · 391 = 100099 ≡ 121 (mod 645)
and
121 · 16 = 1936 ≡ 1 (mod 645)
so we have 2644 ≡ 1 (mod 645). Hence 2644 mod 645 = 1.
Exercise 26.5. Calculate 2513 mod 10.
Exercise 26.6. Calculate 2517 mod 100.
Exercise 26.7. If you multiplied out 2517 , how many decimal digits would
you obtain? [See Exercise 4.3 on page 14.]
Exercise 26.8. Note that on page 96 we calculated 12347865435 mod 11 with
very few multiplications. Why can we not use that method to compute
12347865435 mod 12?
Chapter 27
The RSA Scheme
In this chapter we discuss the basis of the so-called RSA scheme. This is
the most important example of a public key cryptographic scheme. The RSA
scheme is due to R. Rivest, A. Shamir and L. Adelman 1 and was discovered
by them in 1977. We show how to implement it in more detail later using
Maple. Here we give the number-theoretic underpinning of the scheme.
We assume that the message we wish to send has been converted to an
integer in the set Jm = {0, 1, 2, . . . , m − 1} where m is some positive integer
to be determined. Generally this is a large integer. We will require two
functions:
E : Jm → Jm
(E for encipher )
and
D : Jm → Jm
(D for decipher ).
To be able to use D to decipher what E has enciphered we need to have
D(E(x)) = x for all x ∈ Jm . To show how m, E, and D are chosen we first
prove a lemma:
Lemma 27.1. Let p and q be any two distinct primes and let m = pq. Let
e and d be any two positive integers which are inverses of each other modulo
φ(m). Then
xed ≡ x (mod m)
for all x.
1
A copy of the paper “A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems” may be downloaded from http://citeseer.nj.nec.com/rivest78method.html
113
114
CHAPTER 27. THE RSA SCHEME
Proof. By Theorem 22.6, φ(m) = (p − 1)(q − 1). Since ed ≡ 1 (mod φ(m))
we have ed − 1 = kφ(m) = k(p − 1)(q − 1) for some k. Note k > 0 unless
ed = 1 in which case the theorem is obvious. So we have
(∗)
ed = kφ(m) + 1 = k(p − 1)(q − 1) + 1
for some k > 0.
Now by Fermat’s Little Theorem, if gcd(x, p) = 1 we have xp−1 ≡ 1
(mod p) and raising both sides of the congruence to the power (q − 1)k we
obtain:
x(p−1)(q−1)k ≡ 1 (mod p)
and multiplying both sides by x we have
x(p−1)(q−1)k+1 ≡ x (mod p)
That is, by (∗)
(∗∗)
xed ≡ x (mod p).
Now we proved (∗∗) when gcd(x, p) = 1, but if gcd(x, p) = p it is obvious
since then x ≡ 0 (mod p). So in all cases (∗∗) holds. A similar argument
proves that for all x
xed ≡ x (mod q).
So by Exercise 15.11, page 63, we have since gcd(p, q) = 1
xed ≡ x (mod m)
for all x.
Theorem 27.1. Let Jm = {0, 1, 2, . . . , m − 1} and define E : Jm → Jm by
E(x) = xe mod m
and D : Jm → Jm by
D(x) = xd mod m.
Then E and D are inverses of each other if m, e and d are as in Lemma
27.1.
115
Proof. It suffices to show that D(E(x)) = x for all x ∈ Jm . Let x ∈ Jm and
let E(x) = xe mod m = r1 . Also let D (r1 ) = r1d mod m = r2 . We must show
that r2 = x. Since xe mod m = r1 we know that
xe ≡ r1
(mod m).
Hence xed ≡ r1d (mod m). We also know that
r1d ≡ r2
(mod m).
Hence xed ≡ r2 (mod m). By Lemma 27.1 xed ≡ x (mod m) so we have
x ≡ r2
(mod m).
Since both x and r2 are in Jm we have by Exercise 15.5 that x = r2 . This
completes the proof.
More details on the use of the RSA scheme will be given in the Maple
worksheets which are available from the course website which may be reached
from my home page: http://www.math.usf.edu/~eclark.
116
CHAPTER 27. THE RSA SCHEME
Appendix A
Rings and Groups
The material in this appendix is optional reading. However, for the sake
of completeness we state here the definition of a ring and the definition of
a group. If you are interested in learning more you might take the course
Elementary Abstract Algebra. Having had this course should make it a little
easier to understand the ideas in abstract algebra and vice versa.
For more details you may download the free book Elementary Abstract Algebra from my homepage:
http://www.math.usf.edu/~eclark
Alternatively, look in almost any book whose title contains the words Abstract
Algebra or Modern Algebra. Look for one with Introductory or Elementary
in the title.
Definition A.1. A ring is an ordered triple (R, +, ·) where R is a set and
+ and · are binary operations on R satisfying the following properties:
A1 a + (b + c) = (a + b) + c for all a, b, c in R.
A2 a + b = b + a for all a, b in R.
A3 There is an element 0 ∈ R satisfying a + 0 = a for all a in R.
A4 For every a ∈ R there is an element b ∈ R such that a + b = 0.
M1 a · (b · c) = (a · b) · c for all a, b, c in R.
D1 a · (b + c) = a · b + a · c for all a, b, c in R.
117
118
APPENDIX A. RINGS AND GROUPS
D2 (b + c) · a = b · a + c · a for all a, b, c in R.
Thus, to describe a ring one must specify three things:
1. a set,
2. a binary operation on the set called multiplication,
3. a binary operation on the set called addition.
Then, one must verify that the properties above are satisfied.
Example A.1. Here are some examples of rings. The two binary operations
+ and · are in each case the ones that you are familiar with.
1. (R, +, ·)–the ring of real numbers.
2. (Q, +, ·)–the ring of rational numbers.
3. (Z, +, ·)–the ring of integers.
4. (Zn , +, ·)–the ring of integers modulo n.
5. (Mn (R), +, ·)–the ring of all n × n matrices over R.
Definition A.2. A group is an ordered pair (G, ∗) where G is a set and ∗
is a binary operation on G satisfying the following properties
1. x ∗ (y ∗ z) = (x ∗ y) ∗ z for all x, y, z in G.
2. There is an element e ∈ G satisfying e ∗ x = x and x ∗ e = x for all x
in G.
3. For each element x in G there is an element y in G satisfying x ∗ y = e
and y ∗ x = e.
Definition A.3. A group (G, ∗) is said to be Abelian if x ∗ y = y ∗ x for all
x, y ∈ G.
Thus, to describe a group one must specify two things:
1. a set, and
2. a binary operation on the set.
119
Then, one must verify that the binary operation is associative, that there is
an identity in the set, and that every element in the set has an inverse.
Example A.2. Here are some examples of groups. The binary operations
are in each case the ones that you are familiar with.
1. (Z, +) is a group with identity 0. The inverse of x ∈ Z is −x.
2. (Q, +) is a group with identity 0. The inverse of x ∈ Q is −x.
3. (R, +) is a group with identity 0. The inverse of x ∈ R is −x.
4. (Q − {0}, ·) is a group with identity 1. The inverse of x ∈ Q − {0} is
x−1 .
5. (R − {0}, ·) is a group with identity 1. The inverse of x ∈ R − {0} is
x−1 .
6. (Zn , +) is a group with identity 0. The inverse of x ∈ Zn is n − x if
x = 0, the inverse of 0 is 0.
7. (Un , ·) is a group with identity [1]. The inverse of [a] ∈ Un was shown
to exist in Chapter 22.
8. (Rn , +) where + is vector addition. The identity is the zero vector
(0, 0, . . . , 0) and the inverse of the vector x = (x1 , x2 , . . . , xn ) is the
vector −x = (−x1 , −x2 , . . . , −xn ).
9. (Mn (R), +). This is the group of all n × n matrices over R and + is
matrix addition.
120
APPENDIX A. RINGS AND GROUPS
Bibliography
[1] Tom Apostol, Introduction to Analytic Number Theory, Springer-Verlag,
New York-Heidelberg, 1976.
[2] Chris Caldwell, The Primes Pages,
http://www.utm.edu/research/primes/
[3] W. Edwin Clark, Number Theory Links,
http://www.math.usf.edu/~eclark/numtheory_links.html
[4] Earl Fife and Larry Husch, Number Theory (Mathematics Archives,
http://archives.math.utk.edu/topics/numberTheory.html
[5] Ronald Graham, Donald Knuth, and Oren Patashnik, Concrete Mathematics, Addison-Wesley, 1994.
[6] Donald Knuth The Art of Computer Programming, Vols I and II,
Addison-Wesley, 1997.
[7] The Math Forum, Number Theory Sites
http://mathforum.org/library/topics/number_theory/
[8] Oystein Ore, Number Theory and its History, Dover Publications, 1988.
[9] Carl Pomerance and Richard Crandall, Prime Numbers – A Computational Perspective, Springer -Verlag, 2001.
[10] Kenneth A. Rosen, Elementary Number Theory, (Fourth Edition),
Addison-Wesley, 2000.
[11] Eric Weisstein, World of Mathematics –Number Theory Section,
http://mathworld.wolfram.com/topics/NumberTheory.html
121