- 3 -
Plus généralement :
Soit a et b deux entiers, a > b. On a :
a = bq1 + r1avec 0 ≤ r1 < b
b = r1q2 + r2avec 0 ≤ r2 < r1
r1 = r2q3 + r3avec 0 ≤ r3 < r2
... rn–1 = rnqn+1 + rn+1 avec 0 ≤ rn+1 < rn
jusqu'à obtenir un reste nul (par exemple rn+1). L'algorithme est nécessairement fini, sinon (rn)
formerait une suite strictement décroissante d'entiers, ce qu'on sait impossible. Montrons que le
dernier reste calculé rn est le PGCD :
❑ rn divise a et b. En effet, rn divise rn–1 puisqu'on a rn+1 = 0. Il se divise également lui-même. Par
récurrence descendante, si rn divise rp+1 et rp, il divise rp–1 (car rp–1 = rpqp+1 + rp+1). Donc rn divise r1 et
r2, puis r1 et b, puis a et b.
❑ un diviseur d commun à a et b divise également r1 (car r1 = a – bq1). Il divise également r2 (car r2
= b – r1q2). Par récurrence ascendante, si d divise rp–1 et rp, il divise rp+1 (car rp+1 = rp–1 – qp+1rp). d
divise donc rn.
Ainsi, rn est un diviseur commun à a et à b et tout diviseur commun à a et b divise rn. rn est bien le
plus grand diviseur commun de a et b, au sens de la relation de divisibilité. C'est le PGCD de a et b,
noté PGCD(a, b) ou a ∧ b.
L'algorithme est le suivant. La fonction mod (mod pour modulo) donne le reste de la division
euclidienne :
lire(A,B); # A = A0, B = B0,
# A0 et B0 valeurs initiales.
# PGCD(A,B) = PGCD(A0,B0)
tant que B ≠ 0 faire # invariant de boucle : PGCD(A0,B0) = PGCD(A,B)
R ← A mod B; # PGCD(A0,B0) = PGCD(A,B) = PGCD(R,B) car (A, B) et (B, R) ont
# mêmes diviseurs communs donc même PGCD
A ← B; # PGCD(A0,B0) = PGCD(A,R)
B ← R; # PGCD(A0,B0) = PGCD(A,B)
fin faire # On quitte la boucle quand B = 0 donc quand PGCD(A0,B0) = A
resultat ← A;
Si d = 1, on dit que a et b sont premiers entre eux, ce qu'on note a ∧ b = 1. On peut également
définir le PGCD de n nombres. Si celui–ci vaut 1, ces nombres sont dits premiers entre eux dans leur
ensemble (exemple : 6, 10, 15)
2– Egalité de Bézout
Soit a et b deux entiers, et d leur PGCD. On cherche à exprimer d sous la forme ax + by, avec x et y
élément de . Est–ce possible ? On part de :
a × 1 + b × 0 = a
a × 0 + b × 1 = b
a – bq1 = r1
Si l'on a :
axp–1 + byp–1 = rp–1
axp + byp = rp