Euclidean algorithm
In mathematics, the Euclidean alg orithm,
[note 1]
or Euclid's
alg orithm, is an efficient method for computing the greatest
common divisor (GCD) of two numbers, the largest number that
divides both of them without leaving a remainder. It is named after the
ancient Greek mathematician Euclid, who first described it in his
Elements (c. 300 BC). It is an example of an algorithm, a step-by-step
procedure for performing a calculation according to well-defined
rules, and is one of the oldest algorithms in common use. It can be
used to reduce fractions to their simplest form, and is a part of many
other number-theoretic and cryptographic calculations.
The Euclidean algorithm is based on the principle that the greatest
common divisor of two numbers does not change if the larger number
is replaced by its difference with the smaller number. For example, 21
is the GCD of 252 and 105 (as 252 = 21 × 12 and 105 = 21 × 5), and
the same number 21 is also the GCD of 105 and 252 − 105 = 147.
Since this replacement reduces the larger of the two numbers,
repeating this process gives successively smaller pairs of numbers
until the two numbers become equal. When that occurs, they are the
GCD of the original two numbers. By reversing the steps, the GCD
can be expressed as a sum of the two original numbers each
multiplied by a positive or negative integer, e.g.,
21 = 5 × 105 + (−2) × 252. The fact that the GCD can always be
expressed in this way is known as Bézout's identity.
The version of the Euclidean algorithm described above (and by
Euclid) can take many subtraction steps to find the GCD when one of
the given numbers is much bigger than the other. A more efficient
version of the algorithm shortcuts these steps, instead replacing the
larger of the two numbers by its remainder when divided by the
smaller of the two (with this version, the algorithm stops when
reaching a zero remainder). With this improvement, the algorithm
never requires more steps than five times the number of digits (base
10) of the smaller integer. This was proven by Gabriel Lamé in 1844,
and marks the beginning of computational complexity theory. Additional methods for improving the algorithm's efficiency were
developed in the 20th century.
The Euclidean algorithm has many theoretical and practical applications. It is used for reducing fractions to their simplest form and
for performing division in modular arithmetic. Computations using this algorithm form part of the cryptographic protocols that
are used to secure internet communications, and in methods for breaking these cryptosystems by factoring large composite
numbers. The Euclidean algorithm may be used to solve Diophantine equations, such as finding numbers that satisfy multiple
congruences according to the Chinese remainder theorem, to construct continued fractions, and to find accurate rational
approximations to real numbers. Finally, it can be used as a basic tool for proving theorems in number theory such as Lagrange's
Euclid's method for finding the greatest common
divisor (GCD) of two starting lengths BA and DC,
both defined to be multiples of a common "unit"
length. T he length DC being shorter, it is used to
"measure" BA, but only once because remainder
EA is less than DC. EA now measures (twice)
the shorter length DC, with remainder FC shorter
than EA. T hen FC measures (three times) length
EA. Because there is no remainder, the process
ends with FC being the GCD. On the right
Nicomachus' example with numbers 4 9 and 21
resulting in their GCD of 7 (derived from Heath
1908:300).