Difference between revisions of "Euclidean algorithm"
Lemondemon (talk | contribs) m |
(categories) |
||
Line 5: | Line 5: | ||
The basic idea is to repeatedly use the fact that <math>\gcd({a,b}) \equiv \gcd({a,a - b})</math> | The basic idea is to repeatedly use the fact that <math>\gcd({a,b}) \equiv \gcd({a,a - b})</math> | ||
− | If we have two non-negative integers <math>a,b</math> with <math>a\ge b</math> and <math>b=0</math>, then the greatest common divisor is <math> | + | If we have two non-negative integers <math>a,b</math> with <math>a\ge b</math> and <math>b=0</math>, then the greatest common divisor is <math>{a}</math>. If <math>a\ge b>0</math>, then the set of common divisors of <math>{a}</math> and <math>b</math> is the same as the set of common divisors of <math>b</math> and <math>r</math> where <math>r</math> is the [[remainder]] of division of <math>{a}</math> by <math>b</math>. Indeed, we have <math>a=mb+r</math> with some integer<math>m</math>, so, if <math>{d}</math> divides both <math>{a}</math> and <math>b</math>, it must divide both <math>{a}</math> and <math>mb</math> and, thereby, their difference <math>r</math>. Similarly, if <math>{d}</math> divides both <math>b</math> and <math>r</math>, it should divide <math>{a}</math> as well. Thus, the greatest common divisors of <math>{a}</math> and <math>b</math> and of <math>b</math> and <math>r</math> coincide: <math>GCD(a,b)=GCD(b,r)</math>. But the pair <math>(b,r)</math> consists of smaller numbers than the pair <math>(a,b)</math>! So, we reduced our task to a simpler one. And we can do this reduction again and again until the smaller number becomes <math>0</math> |
Line 36: | Line 36: | ||
== Simple Example == | == Simple Example == | ||
− | To see how it works, just take an example. Say <math> | + | To see how it works, just take an example. Say <math>a=112,b=42</math>. We have <math>112\equiv 28\pmod {42}</math>, so <math>{\gcd(112,42)}=\gcd(42,28)</math>. Similarly, <math>42\equiv 14\pmod {28}</math>, so <math>\gcd(42,28)=\gcd(28,14)</math>. Then <math>28\equiv {0}\pmod {14}</math>, so <math>{\gcd(28,14)}={\gcd(14,0)} = 14</math>. Thus <math>\gcd(112,42)=14</math>. |
− | * <math>{ | + | * <math>{112 = 2 \cdot 42 + 28 \qquad (1)}</math> |
* <math>42 = 1\cdot 28+14\qquad (2)</math> | * <math>42 = 1\cdot 28+14\qquad (2)</math> | ||
* <math>28 = 2\cdot 14+0\qquad (3)</math> | * <math>28 = 2\cdot 14+0\qquad (3)</math> | ||
Line 57: | Line 57: | ||
* [[1959 IMO Problems/Problem 1]] | * [[1959 IMO Problems/Problem 1]] | ||
+ | |||
+ | [[Category:Algorithms]] |
Revision as of 21:16, 7 December 2007
The Euclidean algorithm (also known as the Euclidean division algorithm or Euclid's algorithm) is an algorithm that finds the greatest common divisor (GCD) of two elements of a Euclidean domain, the most common of which is the nonnegative integers , without factoring them.
Contents
[hide]Main idea and informal description
The basic idea is to repeatedly use the fact that
If we have two non-negative integers with
and
, then the greatest common divisor is
. If
, then the set of common divisors of
and
is the same as the set of common divisors of
and
where
is the remainder of division of
by
. Indeed, we have
with some integer
, so, if
divides both
and
, it must divide both
and
and, thereby, their difference
. Similarly, if
divides both
and
, it should divide
as well. Thus, the greatest common divisors of
and
and of
and
coincide:
. But the pair
consists of smaller numbers than the pair
! So, we reduced our task to a simpler one. And we can do this reduction again and again until the smaller number becomes
General Form
Start with any two elements and
of a Euclidean Domain
- If
, then
.
- Otherwise take the remainder when
is divided by
, and find
.
- Repeat this until the remainder is 0.
Then
Usually the Euclidean algorithm is written down just as a chain of divisions with remainder:
for
and so
Simple Example
To see how it works, just take an example. Say . We have
, so
. Similarly,
, so
. Then
, so
. Thus
.
Linear Representation
An added bonus of the Euclidean algorithm is the "linear representation" of the greatest common divisor. This allows us to write , where
are some elements from the same Euclidean Domain as
and
that can be determined using the algorithm. We can work backwards from whichever step is the most convenient.
In the previous example, we can work backwards from equation :