4
Notre programme euclide s’écrit à l’aide d’une boucle «tant que», c’est une version dite itérative.
Nous verrons à la section suivante une version dite récursive.
La proposition fondamentale suivante permet d’obtenir une majoration du nombre de divisions eucli-
diennes nécessaires. Les nombres de Fibonacci font leur apparition.
Proposition 1 Soit aet bdeux entiers tels que a>b>1. Si euclide(a,b) effectue k>1divisions
euclidiennes, alors a>Fk+2 et b>Fk+1.
Preuve :
Par récurrence sur l’entier k.
L’initialisation est pour k= 1. On a bien b>1 = F2et a > b donc a>2 = F3.
Supposons la propriété vraie au rang k−1avec k>2.
Considérons deux entiers aet btels que euclide(a,b) effectue k>1divisions euclidiennes. La
première de ces divisions est celle de apar b, c’est à dire a=bq +ravec qet rdeux entiers tels que
06r < b. Si r= 0,euclide(a,b) ne fait pas de divisions supplémentaires, ainsi k= 1 et on est ramené
au cas d’initialisation. On prend donc r > 0. Comme pgcd(a, b) = pgcd(b, r), les k−1divisions restantes
sont celles qu’effectue euclide(b,r). Comme b > r >1, par hypothèse de récurrence au rang k−1, on a
b>F(k−1)+2 =Fk+1 et r>F(k−1)+1 =Fk.
Comme a>b,qne peut être égal à 0car sinon a=r < b, ainsi q>1et donc
a=bq +r>b+r>Fk+1 +Fk=Fk+2.
La propriété est donc bien vérifiée au rang k, ce qui assure l’hérédité.
Remarque : l’hypothèse a > b >1n’est pas restrictive, on peut toujours s’y ramener :
– si b= 0,euclide(a,b) n’effectue aucune division euclidienne.
– si b=a, alors a= 1 ×b+ 0 donc pgcd(a, b) = pgcd(a, 0) = a, et donc une division euclidienne suffit.
– si b>a, alors a= 0 ×b+aavec a<bdonc pgcd(a, b) = pgcd(b, a), et on est ramené au cas où
a>b.
Corollaire 2 (Théorème de Lamé, 1844) Soit aet bdeux entiers tels que a > b >1. Le nombre k
de divisions eucldiennes effectuées par euclide(a,b) est inférieur ou égal à
ln b
ln φ+ 1,
où φ=1 + √5
2est le nombre d’or.
En particulier, le nombre de divisions euclidiennes est inférieur ou égal à cinq fois le nombre de
chiffres de b.
Preuve :
On sait déjà que Fk+1 6b. On veut en déduire une majoration de k+ 1, en «inversant» cette formule.
Mais l’expression de Fk+1 dans la formule de Binet ne le permet pas de façon immédiate. On procède
alors ainsi : on montre par récurrence 2que pour tout entier n∈N∗, Fn>φn−2.
On a alors b>Fk+1 >φk−1, d’où ln b>(k−1) ln φpar croissance de ln. Enfin comme φ > 1,ln φ > 0,
donc
k−16ln b
ln φ.
Si bs’écrit avec Nchiffres, alors b < 10Ndonc ln b<Nln 10 et k−1<Nln 10
ln φ. Comme ln 10
ln φ≈
4.78 <5, on obtient k−1<5Ndonc k < 5N+ 1 ce qui donne bien k65N.
Ce résultat est remarquablement positif :
1. tout d’abord, la majoration du nombre de divisions ne dépend que du plus petit des entiers. Par
exemple, que l’on calcule pgcd(34,21) ou pgcd(3400000000,21), le nombre de division est inférieur
à10 car 21 possède deux chiffres.
2. C’est vrai pour n= 1 car F1= 1 et φ−1<1car φ > 1. L’hérédité repose sur l’identité suivante :
Fn=Fn−1+Fn−2>φn−3+φn−4=φn−3(1 + 1
φ) = φn−3×φ=φn−2.