HOME

TheInfoList



OR:

In
arithmetic Arithmetic () is an elementary part of mathematics that consists of the study of the properties of the traditional operations on numbers— addition, subtraction, multiplication, division, exponentiation, and extraction of roots. In the 19th ...
and
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
, the extended Euclidean algorithm is an extension to the
Euclidean algorithm In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is an effi ...
, and computes, in addition to the
greatest common divisor In mathematics, the greatest common divisor (GCD) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers ''x'', ''y'', the greatest common divisor of ''x'' and ''y'' is ...
(gcd) of integers ''a'' and ''b'', also the coefficients of
Bézout's identity In mathematics, Bézout's identity (also called Bézout's lemma), named after Étienne Bézout, is the following theorem: Here the greatest common divisor of and is taken to be . The integers and are called Bézout coefficients for ; they ...
, which are integers ''x'' and ''y'' such that : ax + by = \gcd(a, b). This is a certifying algorithm, because the gcd is the only number that can simultaneously satisfy this equation and divide the inputs. It allows one to compute also, with almost no extra cost, the quotients of ''a'' and ''b'' by their greatest common divisor. also refers to a very similar algorithm for computing the
polynomial greatest common divisor In algebra, the greatest common divisor (frequently abbreviated as GCD) of two polynomials is a polynomial, of the highest possible degree, that is a factor of both the two original polynomials. This concept is analogous to the greatest common di ...
and the coefficients of Bézout's identity of two
univariate polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An ex ...
s. The extended Euclidean algorithm is particularly useful when ''a'' and ''b'' are
coprime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
. With that provision, ''x'' is the
modular multiplicative inverse In mathematics, particularly in the area of arithmetic, a modular multiplicative inverse of an integer is an integer such that the product is congruent to 1 with respect to the modulus .. In the standard notation of modular arithmetic this congr ...
of ''a'' modulo ''b'', and ''y'' is the modular multiplicative inverse of ''b'' modulo ''a''. Similarly, the polynomial extended Euclidean algorithm allows one to compute the
multiplicative inverse In mathematics, a multiplicative inverse or reciprocal for a number ''x'', denoted by 1/''x'' or ''x''−1, is a number which when Multiplication, multiplied by ''x'' yields the multiplicative identity, 1. The multiplicative inverse of a rat ...
in
algebraic field extension In mathematics, an algebraic extension is a field extension such that every element of the larger field is algebraic over the smaller field ; that is, if every element of is a root of a non-zero polynomial with coefficients in . A field ext ...
s and, in particular in
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field that contains a finite number of elements. As with any field, a finite field is a set on which the operations of multiplication, addition, subtr ...
s of non prime order. It follows that both extended Euclidean algorithms are widely used in
cryptography Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or ''-logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adver ...
. In particular, the computation of the
modular multiplicative inverse In mathematics, particularly in the area of arithmetic, a modular multiplicative inverse of an integer is an integer such that the product is congruent to 1 with respect to the modulus .. In the standard notation of modular arithmetic this congr ...
is an essential step in the derivation of key-pairs in the RSA public-key encryption method.


Description

The standard Euclidean algorithm proceeds by a succession of
Euclidean division In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than ...
s whose quotients are not used. Only the ''remainders'' are kept. For the extended algorithm, the successive quotients are used. More precisely, the standard Euclidean algorithm with ''a'' and ''b'' as input, consists of computing a sequence q_1,\ldots, q_k of quotients and a sequence r_0,\ldots, r_ of remainders such that : \begin r_0 & =a \\ r_1 & =b \\ & \,\,\,\vdots \\ r_ & =r_-q_i r_i \quad \text \quad 0\le r_ < , r_i, \quad\textq_i)\\ & \,\,\, \vdots \end It is the main property of
Euclidean division In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than ...
that the inequalities on the right define uniquely q_i and r_ from r_ and r_. The computation stops when one reaches a remainder r_ which is zero; the greatest common divisor is then the last non zero remainder r_. The extended Euclidean algorithm proceeds similarly, but adds two other sequences, as follows : \begin r_0 & =a & r_1 & =b \\ s_0 & =1 & s_1 & =0 \\ t_0 & =0 & t_1 & =1 \\ & \,\,\,\vdots & & \,\,\,\vdots \\ r_ & =r_-q_i r_i & \text 0 & \le r_ < , r_i, & \text q_i \text\\ s_ & =s_-q_i s_i \\ t_ & =t_-q_i t_i \\ & \,\,\, \vdots \end The computation also stops when r_=0 and gives *r_k is the greatest common divisor of the input a=r_0 and b=r_1. * The Bézout coefficients are s_k and t_k, that is \gcd(a,b)=r_k=as_k+bt_k * The quotients of ''a'' and ''b'' by their greatest common divisor are given by s_=\pm\frac and t_=\pm\frac Moreover, if ''a'' and ''b'' are both positive and \gcd(a,b)\neq\min(a,b), then :, s_i, \leq \left\lfloor\frac\right\rfloor\quad \text \quad , t_i, \leq \left\lfloor\frac\right\rfloor for 0\leq i \leq k, where \lfloor x\rfloor denotes the
integral part In mathematics and computer science, the floor function is the function that takes as input a real number , and gives as output the greatest integer less than or equal to , denoted or . Similarly, the ceiling function maps to the least int ...
of , that is the greatest integer not greater than . This implies that the pair of Bézout's coefficients provided by the extended Euclidean algorithm is the ''minimal pair'' of Bézout coefficients, as being the unique pair satisfying both above inequalities . Also it means that the algorithm can be done without
integer overflow In computer programming, an integer overflow occurs when an arithmetic operation attempts to create a numeric value that is outside of the range that can be represented with a given number of digits – either higher than the maximum or lower ...
by a
computer program A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components. A computer program ...
using integers of a fixed size that is larger than that of ''a'' and ''b''.


Example

The following table shows how the extended Euclidean algorithm proceeds with input and . The greatest common divisor is the last non zero entry, in the column "remainder". The computation stops at row 6, because the remainder in it is . Bézout coefficients appear in the last two entries of the second-to-last row. In fact, it is easy to verify that . Finally the last two entries and of the last row are, up to the sign, the quotients of the input and by the greatest common divisor .


Proof

As 0\le r_<, r_i, , the sequence of the r_i is a decreasing sequence of nonnegative integers (from ''i'' = 2 on). Thus it must stop with some r_=0. This proves that the algorithm stops eventually. As r_= r_ - r_i q_i, the greatest common divisor is the same for (r_, r_i) and (r_, r_). This shows that the greatest common divisor of the input a=r_0, b=r_1 is the same as that of r_k, r_=0. This proves that r_k is the greatest common divisor of ''a'' and ''b''. (Until this point, the proof is the same as that of the classical Euclidean algorithm.) As a=r_0 and b=r_1, we have as_i+bt_i=r_i for ''i'' = 0 and 1. The relation follows by induction for all i>1: :r_ = r_ - r_i q_i = (as_+bt_) - (as_i+bt_i)q_i = (as_-as_iq_i) + (bt_-bt_iq_i) = as_+bt_. Thus s_k and t_k are Bézout coefficients. Consider the matrix :A_i=\begin s_ & s_i\\ t_ & t_i \end. The recurrence relation may be rewritten in matrix form :A_ = A_i \cdot \begin 0 & 1\\ 1 & -q_i \end. The matrix A_1 is the identity matrix and its determinant is one. The determinant of the rightmost matrix in the preceding formula is −1. It follows that the determinant of A_i is (-1)^. In particular, for i=k+1, we have s_k t_-t_k s_ = (-1)^k. Viewing this as a Bézout's identity, this shows that s_ and t_ are
coprime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
. The relation as_+bt_=0 that has been proved above and
Euclid's lemma In algebra and number theory, Euclid's lemma is a lemma that captures a fundamental property of prime numbers, namely: For example, if , , , then , and since this is divisible by 19, the lemma implies that one or both of 133 or 143 must be as w ...
show that s_ divides , that is that b=ds_ for some integer . Dividing by s_ the relation as_+bt_=0 gives a=-dt_. So, s_ and -t_ are coprime integers that are the quotients of and by a common factor, which is thus their greatest common divisor or its opposite. To prove the last assertion, assume that ''a'' and ''b'' are both positive and \gcd(a,b)\neq\min(a,b). Then, a\neq b , and if a, it can be seen that the ''s'' and ''t'' sequences for (''a'',''b'') under the EEA are, up to initial 0s and 1s, the ''t'' and ''s'' sequences for (''b'',''a''). The definitions then show that the (''a'',''b'') case reduces to the (''b'',''a'') case. So assume that a>b without loss of generality. It can be seen that s_2 is 1 and s_3 (which exists by \gcd(a,b)\neq\min(a,b)) is a negative integer. Thereafter, the s_i alternate in sign and strictly increase in magnitude, which follows inductively from the definitions and the fact that q_i\geq 1 for 1\leq i \leq k, the case i=1 holds because a>b. The same is true for the t_i after the first few terms, for the same reason. Furthermore, it is easy to see that q_k \geq 2 (when ''a'' and ''b'' are both positive and \gcd(a,b)\neq\min(a,b)). Thus, :, s_, =\left , \frac \right , \geq 2, s_k, \qquad \text \qquad , t_, = \left , \frac \right , \geq 2, t_k, . This, accompanied by the fact that s_k,t_k are larger than or equal to in absolute value than any previous s_i or t_i respectively completed the proof.


Polynomial extended Euclidean algorithm

For
univariate polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An ex ...
s with coefficients in a
field Field may refer to: Expanses of open ground * Field (agriculture), an area of land used for agricultural purposes * Airfield, an aerodrome that lacks the infrastructure of an airport * Battlefield * Lawn, an area of mowed grass * Meadow, a grass ...
, everything works similarly, Euclidean division, Bézout's identity and extended Euclidean algorithm. The first difference is that, in the Euclidean division and the algorithm, the inequality 0\le r_<, r_i, has to be replaced by an inequality on the degrees \deg r_<\deg r_i. Otherwise, everything which precedes in this article remains the same, simply by replacing integers by polynomials. A second difference lies in the bound on the size of the Bézout coefficients provided by the extended Euclidean algorithm, which is more accurate in the polynomial case, leading to the following theorem. ''If a and b are two nonzero polynomials, then the extended Euclidean algorithm produces the unique pair of polynomials'' (''s'', ''t'') ''such that'' :as+bt=\gcd(a,b) ''and'' :\deg s < \deg b - \deg (\gcd(a,b)), \quad \deg t < \deg a - \deg (\gcd(a,b)). A third difference is that, in the polynomial case, the greatest common divisor is defined only up to the multiplication by a non zero constant. There are several ways to define unambiguously a greatest common divisor. In mathematics, it is common to require that the greatest common divisor be a
monic polynomial In algebra, a monic polynomial is a single-variable polynomial (that is, a univariate polynomial) in which the leading coefficient (the nonzero coefficient of highest degree) is equal to 1. Therefore, a monic polynomial has the form: :x^n+c_x^+\cd ...
. To get this, it suffices to divide every element of the output by the
leading coefficient In mathematics, a coefficient is a multiplicative factor in some term of a polynomial, a series, or an expression; it is usually a number, but may be any expression (including variables such as , and ). When the coefficients are themselves var ...
of r_. This allows that, if ''a'' and ''b'' are coprime, one gets 1 in the right-hand side of Bézout's inequality. Otherwise, one may get any non-zero constant. In computer algebra, the polynomials commonly have integer coefficients, and this way of normalizing the greatest common divisor introduces too many fractions to be convenient. The second way to normalize the greatest common divisor in the case of polynomials with integers coefficients is to divide every output by the
content Content or contents may refer to: Media * Content (media), information or experience provided to audience or end-users by publishers or media producers ** Content industry, an umbrella term that encompasses companies owning and providing mas ...
of r_, to get a primitive greatest common divisor. If the input polynomials are coprime, this normalisation also provides a greatest common divisor equal to 1. The drawback of this approach is that a lot of fractions should be computed and simplified during the computation. A third approach consists in extending the algorithm of subresultant pseudo-remainder sequences in a way that is similar to the extension of the Euclidean algorithm to the extended Euclidean algorithm. This allows that, when starting with polynomials with integer coefficients, all polynomials that are computed have integer coefficients. Moreover, every computed remainder r_i is a subresultant polynomial. In particular, if the input polynomials are coprime, then the Bézout's identity becomes :as+bt=\operatorname(a,b), where \operatorname(a,b) denotes the
resultant In mathematics, the resultant of two polynomials is a polynomial expression of their coefficients, which is equal to zero if and only if the polynomials have a common root (possibly in a field extension), or, equivalently, a common factor (ove ...
of ''a'' and ''b''. In this form of Bézout's identity, there is no denominator in the formula. If one divides everything by the resultant one gets the classical Bézout's identity, with an explicit common denominator for the rational numbers that appear in it.


Pseudocode

To implement the algorithm that is described above, one should first remark that only the two last values of the indexed variables are needed at each step. Thus, for saving memory, each indexed variable must be replaced by just two variables. For simplicity, the following algorithm (and the other algorithms in this article) uses
parallel assignment In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable. In most imperative programming languages, the assi ...
s. In a programming language which does not have this feature, the parallel assignments need to be simulated with an auxiliary variable. For example, the first one, (old_r, r) := (r, old_r - quotient * r) is equivalent to prov := r; r := old_r - quotient × prov; old_r := prov; and similarly for the other parallel assignments. This leads to the following code: function extended_gcd(a, b) (old_r, r) := (a, b) (old_s, s) := (1, 0) (old_t, t) := (0, 1) while r ≠ 0 do quotient := old_r div r (old_r, r) := (r, old_r − quotient × r) (old_s, s) := (s, old_s − quotient × s) (old_t, t) := (t, old_t − quotient × t) output "Bézout coefficients:", (old_s, old_t) output "greatest common divisor:", old_r output "quotients by the gcd:", (t, s) The quotients of ''a'' and ''b'' by their greatest common divisor, which is output, may have an incorrect sign. This is easy to correct at the end of the computation but has not been done here for simplifying the code. Similarly, if either ''a'' or ''b'' is zero and the other is negative, the greatest common divisor that is output is negative, and all the signs of the output must be changed. Finally, notice that in Bézout's identity, ax + by = \gcd(a, b), one can solve for y given a, b, x, \gcd(a, b). Thus, an optimization to the above algorithm is to compute only the s_k sequence (which yields the Bézout coefficient x), and then compute y at the end: function extended_gcd(a, b) s := 0; old_s := 1 r := b; old_r := a while r ≠ 0 do quotient := old_r div r (old_r, r) := (r, old_r − quotient × r) (old_s, s) := (s, old_s − quotient × s) if b ≠ 0 then bezout_t := (old_r − old_s × a) div b else bezout_t := 0 output "Bézout coefficients:", (old_s, bezout_t) output "greatest common divisor:", old_r However, in many cases this is not really an optimization: whereas the former algorithm is not susceptible to overflow when used with machine integers (that is, integers with a fixed upper bound of digits), the multiplication of ''old_s * a'' in computation of ''bezout_t'' can overflow, limiting this optimization to inputs which can be represented in less than half the maximal size. When using integers of unbounded size, the time needed for multiplication and division grows quadratically with the size of the integers. This implies that the "optimisation" replaces a sequence of multiplications/divisions of small integers by a single multiplication/division, which requires more computing time than the operations that it replaces, taken together.


Simplification of fractions

A fraction is in canonical simplified form if and are
coprime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
and is positive. This canonical simplified form can be obtained by replacing the three output lines of the preceding pseudo code by if then output "Division by zero" if then ; (''for avoiding negative denominators'') if then output (''for avoiding denominators equal to'' 1) output The proof of this algorithm relies on the fact that and are two coprime integers such that , and thus \frac = -\frac. To get the canonical simplified form, it suffices to move the minus sign for having a positive denominator. If divides evenly, the algorithm executes only one iteration, and we have at the end of the algorithm. It is the only case where the output is an integer.


Computing multiplicative inverses in modular structures

The extended Euclidean algorithm is the essential tool for computing
multiplicative inverse In mathematics, a multiplicative inverse or reciprocal for a number ''x'', denoted by 1/''x'' or ''x''−1, is a number which when Multiplication, multiplied by ''x'' yields the multiplicative identity, 1. The multiplicative inverse of a rat ...
s in modular structures, typically the modular integers and the
algebraic field extension In mathematics, an algebraic extension is a field extension such that every element of the larger field is algebraic over the smaller field ; that is, if every element of is a root of a non-zero polynomial with coefficients in . A field ext ...
s. A notable instance of the latter case are the finite fields of non-prime order.


Modular integers

If is a positive integer, the ring may be identified with the set of the remainders of
Euclidean division In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than ...
by , the addition and the multiplication consisting in taking the remainder by of the result of the addition and the multiplication of integers. An element of has a multiplicative inverse (that is, it is a
unit Unit may refer to: Arts and entertainment * UNIT, a fictional military organization in the science fiction television series ''Doctor Who'' * Unit of action, a discrete piece of action (or beat) in a theatrical presentation Music * ''Unit'' (alb ...
) if it is
coprime In mathematics, two integers and are coprime, relatively prime or mutually prime if the only positive integer that is a divisor of both of them is 1. Consequently, any prime number that divides does not divide , and vice versa. This is equivale ...
to . In particular, if is
prime A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
, has a multiplicative inverse if it is not zero (modulo ). Thus is a field if and only if is prime. Bézout's identity asserts that and are coprime if and only if there exist integers and such that :ns+at=1 Reducing this identity modulo gives :at \equiv 1 \mod n. Thus , or, more exactly, the remainder of the division of by , is the multiplicative inverse of modulo . To adapt the extended Euclidean algorithm to this problem, one should remark that the Bézout coefficient of is not needed, and thus does not need to be computed. Also, for getting a result which is positive and lower than ''n'', one may use the fact that the integer provided by the algorithm satisfies . That is, if , one must add to it at the end. This results in the pseudocode, in which the input ''n'' is an integer larger than 1. function inverse(a, n) t := 0; newt := 1 r := n; newr := a while newr ≠ 0 do quotient := r div newr (t, newt) := (newt, t − quotient × newt) (r, newr) := (newr, r − quotient × newr) if r > 1 then return "a is not invertible" if t < 0 then t := t + n return t


Simple algebraic field extensions

The extended Euclidean algorithm is also the main tool for computing
multiplicative inverse In mathematics, a multiplicative inverse or reciprocal for a number ''x'', denoted by 1/''x'' or ''x''−1, is a number which when Multiplication, multiplied by ''x'' yields the multiplicative identity, 1. The multiplicative inverse of a rat ...
s in simple algebraic field extensions. An important case, widely used in
cryptography Cryptography, or cryptology (from grc, , translit=kryptós "hidden, secret"; and ''graphein'', "to write", or ''-logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of adver ...
and
coding theory Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
, is that of
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field that contains a finite number of elements. As with any field, a finite field is a set on which the operations of multiplication, addition, subtr ...
s of non-prime order. In fact, if is a prime number, and , the field of order is a simple algebraic extension of the
prime field In mathematics, the characteristic of a ring , often denoted , is defined to be the smallest number of times one must use the ring's multiplicative identity (1) in a sum to get the additive identity (0). If this sum never reaches the additive ide ...
of elements, generated by a root of an
irreducible polynomial In mathematics, an irreducible polynomial is, roughly speaking, a polynomial that cannot be factored into the product of two non-constant polynomials. The property of irreducibility depends on the nature of the coefficients that are accepted ...
of degree . A simple algebraic extension of a field , generated by the root of an irreducible polynomial of degree may be identified to the
quotient ring In ring theory, a branch of abstract algebra, a quotient ring, also known as factor ring, difference ring or residue class ring, is a construction quite similar to the quotient group in group theory and to the quotient space in linear algebra. ...
K \langle p\rangle,, and its elements are in bijective correspondence with the polynomials of degree less than . The addition in is the addition of polynomials. The multiplication in is the remainder of the
Euclidean division In arithmetic, Euclidean division – or division with remainder – is the process of dividing one integer (the dividend) by another (the divisor), in a way that produces an integer quotient and a natural number remainder strictly smaller than ...
by of the product of polynomials. Thus, to complete the arithmetic in , it remains only to define how to compute multiplicative inverses. This is done by the extended Euclidean algorithm. The algorithm is very similar to that provided above for computing the modular multiplicative inverse. There are two main differences: firstly the last but one line is not needed, because the Bézout coefficient that is provided always has a degree less than . Secondly, the greatest common divisor which is provided, when the input polynomials are coprime, may be any non zero elements of ; this Bézout coefficient (a polynomial generally of positive degree) has thus to be multiplied by the inverse of this element of . In the pseudocode which follows, is a polynomial of degree greater than one, and is a polynomial. function inverse(a, p) t := 0; newt := 1 r := p; newr := a while newr ≠ 0 do quotient := r div newr (r, newr) := (newr, r − quotient × newr) (t, newt) := (newt, t − quotient × newt) if degree(r) > 0 then return "Either p is not irreducible or a is a multiple of p" return (1/r) × t


Example

For example, if the polynomial used to define the finite field GF(28) is ''p'' = ''x''8 + ''x''4 + ''x''3 + ''x'' + 1, and ''a'' = ''x''6 + ''x''4 + ''x'' + 1 is the element whose inverse is desired, then performing the algorithm results in the computation described in the following table. Let us recall that in fields of order 2''n'', one has -''z'' = ''z'' and ''z'' + ''z'' = 0 for every element ''z'' in the field). Since 1 is the only nonzero element of GF(2), the adjustment in the last line of the pseudocode is not needed. Thus, the inverse is ''x''7 + ''x''6 + ''x''3 + ''x'', as can be confirmed by multiplying the two elements together, and taking the remainder by of the result.


The case of more than two numbers

One can handle the case of more than two numbers iteratively. First we show that \gcd(a,b,c) = \gcd(\gcd(a,b),c). To prove this let d=\gcd(a,b,c). By definition of gcd d is a divisor of a and b. Thus \gcd(a,b)=k d for some k. Similarly d is a divisor of c so c=jd for some j. Let u=\gcd(k,j). By our construction of u, ud , a,b,c but since d is the greatest divisor u is a
unit Unit may refer to: Arts and entertainment * UNIT, a fictional military organization in the science fiction television series ''Doctor Who'' * Unit of action, a discrete piece of action (or beat) in a theatrical presentation Music * ''Unit'' (alb ...
. And since ud=\gcd(\gcd(a,b),c) the result is proven. So if na + mb = \gcd(a,b) then there are x and y such that x\gcd(a,b) + yc = \gcd(a,b,c) so the final equation will be : x(na + mb) + yc = (xn)a + (xm)b + yc = \gcd(a,b,c).\, So then to apply to ''n'' numbers we use induction :\gcd(a_1,a_2,\dots,a_n) =\gcd(a_1,\, \gcd(a_2,\, \gcd(a_3,\dots, \gcd(a_\,,a_n))),\dots), with the equations following directly.


See also

* Euclidean domain *
Linear congruence theorem In mathematics, the Chinese remainder theorem states that if one knows the remainders of the Euclidean division of an integer ''n'' by several integers, then one can determine uniquely the remainder of the division of ''n'' by the product of the ...
*
Kuṭṭaka Kuṭṭaka is an algorithm for finding integer solutions of linear Diophantine equations. A linear Diophantine equation is an equation of the form ''ax'' + ''by'' = ''c'' where ''x'' and ''y'' are unknown quantities and ''a'', ''b'', and ''c'' ar ...


References

* Volume 2, Chapter 4. *
Thomas H. Cormen Thomas H. Cormen is the co-author of ''Introduction to Algorithms'', along with Charles Leiserson, Ron Rivest, and Cliff Stein. In 2013, he published a new book titled '' Algorithms Unlocked''. He is a professor of computer science at Dartmout ...
,
Charles E. Leiserson Charles Eric Leiserson is a computer scientist, specializing in the theory of parallel computing and distributed computing, and particularly practical applications thereof. As part of this effort, he developed the Cilk multithreaded language. ...
,
Ronald L. Rivest Ronald Linn Rivest (; born May 6, 1947) is a cryptographer and an Institute Professor at MIT. He is a member of MIT's Department of Electrical Engineering and Computer Science (EECS) and a member of MIT's Computer Science and Artificial Inte ...
, and
Clifford Stein Clifford Seth Stein (born December 14, 1965), a computer scientist, is a professor of industrial engineering and operations research at Columbia University in New York, NY, where he also holds an appointment in the Department of Computer Scien ...
. ''
Introduction to Algorithms ''Introduction to Algorithms'' is a book on computer programming by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. The book has been widely used as the textbook for algorithms courses at many universities and is co ...
'', Second Edition. MIT Press and McGraw-Hill, 2001. . Pages 859–861 of section 31.2: Greatest common divisor.


External links


Source for the form of the algorithm used to determine the multiplicative inverse in GF(2^8)
{{number theoretic algorithms Number theoretic algorithms Articles with example pseudocode Euclid