• Accueil
  • À propos
  • Accrom\(\alpha\)th en PDF
  • Commanditaires
  • Contact et Abonnements
  • Sites amis

Logo

Trouver le PGCD de deux entiers

Par Christiane Rousseau
Volume 19.2 - été-automne 2024

Lorsqu’on doit trouver le plus grand commun diviseur de deux entiers on pense spontanément à utiliser le théorème fondamental de l’arithmétique, soit la factorisation de chaque entier en facteurs premiers. Pourtant, cette méthode est complètement inefficace numériquement puisqu’un ordinateur ne peut pas factoriser de très grands entiers en un temps raisonnable, ce qui est à la base de protocoles de cryptographie1. Une méthode extrêmement efficace numériquement remonte à 300 ans av. J.-C. : elle est donnée par l’algorithme d’Euclide. Et cette méthode a de nombreuses applications pratiques modernes

Euclide
vers -300

Prenons deux entiers positifs a et b dont on veut trouver le plus grand commun diviseur, appelé PGCD de a et b. La méthode proposée par Euclide repose sur la division euclidienne.

La divison euclidienne

Étant donné deux entiers positifs c et d, il existe des entiers q et r tels que
\[c = dq + r, 0 \leq r < d.\] Si \(c = 112\) et \(d = 29\), cela nous donne \[112 = 29 \times 3 + 25.\] Regardons maintenant comment Euclide propose d’itérer ce processus pour trouver le PGCD de \(a = 112\) et \(b =29\). \[ \begin {array} {l r} 112 = 29 \times 3 + 25, &(e_1)\\ 29 = 25 \times 1 + 4, &(e_2)\\25 = 4 \times 6 + 1, &(e_3) \\ 4 = 1 \times 4 + 0. &(e_4)\end{array}\] Qu’a-t-on fait ? À la deuxième étape on a divisé b par le reste. À la troisième étape, on a divisé le premier reste par le deuxième reste. À la quatrième étape on a divisé le deuxième reste par le troisième reste. Le quatrième reste est nul. Donc on ne peut continuer. L’affirmation d’Euclide est que le dernier reste non nul, ici 1, est le PGCD de a et b.

Cela peut sembler plus compliqué que de décomposer a et b en facteurs premiers. Pour nous, oui ! Mais pas pour un ordinateur. Malgré de la recherche intensive pour améliorer les algorithmes de factorisation, la décomposition en facteurs premiers demeure très gourmande en temps et impossible à réaliser en un temps raisonnable si a et b sont grands. Alors que la division euclidienne et l’algorithme d’Euclide sont très efficaces numériquement ! C’est donc l’algorithme d’Euclide qui est préprogrammé dans les logiciels calculant le PGCD de deux nombres.

Le cas général de l’algorithme d’Euclide apparaît dans l’encadré.

Exploiter l’algorithme

Cet algorithme a beaucoup plus à nous offrir que de trouver le PGCD de a et b. Revenons à notre exemple et remontons les équations une à une à partir de l’avant dernière \((e_3)\), soit celle dont le reste est le PGCD de a et b. L’équation \((e_3)\) est équivalente à :
\[\begin{array}{r l r}1 = 25 – 4 \times 6.&&(1) \end{array}\]

L’équation \((e_2)\) nous donne

\[\begin{array}{r l r}4 = 29 – 25 \times 1. &&(2)\end{array}\]
Remplaçons (2) dans (1) :
\[\begin{array}{r l r}1 &= 25 – (29 – 25 \times 1) \times 6 \\ &= 25 \times 7 – 29 \times 6. &(3)\end{array}\]
L’équation \((e_1)\) nous donne
\[\begin{array}{r l r}25 = 112 – 29 \times 3. &&(4)\end{array}\]
Remplaçons (4) dans (3) :
\[\begin{array}{r l r}1& = (112 – 29 \times 3) \times 7 – 29 \times 6 \\&= 112 \times 7 – 29 \times 27. &(5)\end{array}\]
C’est cette dernière expression qui nous intéresse : on a écrit le PGCD de 112 et 29 sous la forme
\[1 = 112 \times 7 + 29 \times (–27).\]
soit sous la forme :
\[\begin{array}{r l r}PGCD(a, b) = ac + bd, &&(^*)\end{array}\]

Étienne Bezout
1730-1783

où c et d sont deux entiers relatifs. Cette dernière relation, tout à fait générale, est appelée théorème de Bezout. C’est elle qui est utilisée dans les applications pratiques, le plus souvent quand a et b sont relativement premiers, et donc quand PGCD(a, b) = 1. Une de ces applications se trouve dans l’article « Ne léser aucun héritier » de ce numéro.

Le fait que la factorisation d’un grand nombre entier est difficile est à la base du protocole de cryptographie RSA utilisé dans beaucoup de transactions où on doit fournir un NIP secret : ce NIP est crypté lors de la transmission et lisible seulement par le récepteur. Récupérer le NIP utilise une manipulation basée sur le théorème de Bezout.

L’algorithme d’Euclide

L’algorithme pour trouver le PGCD de deux entiers a et b a été proposé par Euclide près de 300 ans avant notre ère. Il utilise en boucle la division euclidienne. Plus de deux millénaires avant la programmation informatique, la méthode est résolument moderne et très rapide numériquement. Sans perte de généralité, on peut supposer que \(a \geq b\). On fait la division euclidienne de a par b :
\[\begin{array}{l l r}a = bq_1 r_1, 0 \leq r_1 < b. &&(E_1) \end{array}\] Si \(r_1 > 0\), on fait la division de \(b\) par \(r_1\) :

\[\begin{array}{l l r}b = r_1q_2 + r_2, 0 \leq r_2 < r_1. &&(E_2) \end{array}\] Si \(r_2 > 0\), on fait la division de \(r_1\) par \(r_2\) :
\[\begin{array}{l l r}r_1 = r_2q_3 + r_3, 0 \leq r_3 < r2 . &&(E_3) \end{array}\] On itère… Si \(r_n > 0\), on fait la division de \(r_{n–1}\) par \(r_n\) :

\[\begin{array}{l l r}r_{n-1} = r_nq_{n+1} + r_{n+1}, 0 \leq r_{n+1} < r_n . &&(E_{n+1}) \end{array}\] Regardons la suite des restes : \[0 \leq r_{n+1}< r_n < … < r_2 < r_1.\] On ne peut continuer indéfiniment sans arriver à un reste nul. Supposons que \(r_{n+1}\) soit le premier reste nul. Alors, on peut montrer que l’avant dernier reste, soit \(r_n\), est le PGCD de \(a\) et \(b\) (détails dans l’autre encadré).

Le dernier reste non-nul est le PGCD de \(a\) et \(b\)

Il y a deux choses à montrer :
– que \(r_n\) est un diviseur de \(a\) et \(b\);
– que parmi tous les diviseurs de \(a\) et \(b\), \(r_n\) est le plus grand, et donc que tout diviseur \(d\) de \(a\) et \(b\) divise \(r_n\).

Pour montrer que \(r_n\) divise \(a\) et \(b\), on remonte les équations une à une à partir de \((E_{n+1})\) : cette équation nous dit que \(r_n\) divise \(r_{n–1}\). L’équation \((E_n)\) s’écrit  :
\[\begin{array}{l l r}r_{n–2} = r_{n–1} q_n + r_n. &&(E_n)\end{array}\]

Puisque \(r_n\) divise \(r_{n–1}\), alors \(r_n\) divise \(r_{n–2}\). Etc. De l’équation \((E_2)\), on tirera que \(r_n\) divise \(b\), et de l’équation \((E_1)\), on tirera que \(r_n\) divise \(a\).

Pour montrer que tout diviseur \(d\) de \(a\) et \(b\) divise \(r_n\) on fait le contraire et on descend les équations une à une. Si \(d\) divise \(a\) et \(b\) on tire de \((E_1)\) que \(d\) divise \(r_1\).

Dans \((E_2)\), on a que \(d\) divise \(b\) et \(r_1\), donc \(d\) divise \(r_2\). Etc., jusqu’à l’équation \((E_n)\), d’où on conclut que \(d\) divise \(r_n\).

PDF

  1. Voir « Facile, difficile, … » de la même auteure, Accromath, 14, été-automne, 2019. Voir aussi « L’héritage de Fermat pour la factorisation des grands nombres », Jean-Marie de Koninck, Accromath 14, été-automne, 2019. ↩
  • ● Version PDF
Partagez
  • tweet

Etiquettes : Accro-flashs

Articles récents

  • Se rendre invisible, est-ce possible ?

    Christiane Rousseau
  • Points, droites et plans

    André Ross
  • Le jeu de Nim

    Christiane Rousseau

Sur le même sujet

  • Se rendre invisible, est-ce possible ?

    Christiane Rousseau
  • Points, droites et plans

    André Ross
  • Le jeu de Nim

    Christiane Rousseau

    Auteurs

    • Michel Adès
    • Antoine Allard
    • Jean Aubin
    • Marie Beaulieu
    • Rosalie Bélanger-Rioux
    • Claude Bélisle
    • Léo Belzile
    • Marc Bergeron
    • Pierre Bernier
    • André Boileau
    • Véronique Boutet
    • Pietro-Luciano Buono
    • Jean-Philippe Burelle
    • Massimo Caccia
    • Jérôme Camiré-Bernier
    • France Caron
    • Philippe Carphin
    • Kévin Cazelles
    • Laurent Charlin
    • Pierre Chastenay
    • Noémie Chenail
    • Christian Côté
    • Jocelyn Dagenais
    • Marie-France Dallaire
    • Jean-Lou de Carufel
    • Jean-Marie De Koninck
    • Lambert De Monte
    • Jean-Paul Delahaye
    • Marc-André Desautels
    • Florin Diacu
    • Jimmy Dillies
    • Nicolas Doyon
    • Philippe Drobinski
    • Hugo Drouin-Vaillancourt
    • Louis J. Dubé
    • Thierry Duchesne
    • Matthieu Dufour
    • Stéphane Durand
    • Thomas Erneux
    • Philippe Etchécopar
    • Julien Fageot
    • Charles Fleurent
    • Serge Fontaine
    • Jérôme Fortier
    • Marlène Frigon
    • Jean-François Gagnon
    • André Garon
    • Christian Genest
    • Denis Gilbert
    • Jonathan Godin
    • Frédéric Gourdeau
    • Samuel Goyette
    • Andrew Granville
    • Jean Guérin
    • Hervé Guillard
    • Abba B. Gumel
    • James A. Hanley
    • Alain Hertz
    • Bernard R. Hodgson
    • Isabelle Jalliffier-Verne
    • Guillaume Jouvet
    • Tomasz Kaczynski
    • Patrick Labelle
    • Marc Laforest
    • Nadia Lafrenière
    • Josiane Lajoie
    • Alexis Langlois-Rémillard
    • Simon-Olivier Laperrière
    • René Laprise
    • Steffen Lauritzen
    • Denis Lavigne
    • Adrien Lessard
    • Steven Lu
    • Jean Meunier
    • Erica Moodie
    • Normand Mousseau
    • Johanna G. Nešlehová
    • Pierre-André Noël
    • Dmitry Novikov
    • Ostap Okhrin
    • Laurent Pelletier
    • Jean-François Plante
    • Serge B. Provost
    • Annie Claude Prud'Homme
    • Benoît Rittaud
    • Louis-Paul Rivest
    • Serge Robert
    • André Ross
    • Guillaume Roy-Fortin
    • Yvan Saint-Aubin
    • Maria Vittoria Salvetti
    • Charles Senécal
    • Vasilisa Shramchenko
    • Robert Smith?
    • Dylan Spicker
    • Anik Trahan
    • Shophika Vaithyanathasarma
    • William Verreault
    • Redouane Zazoun

Sujets

Accro-flashs (18) Algèbre (2) Applications (3) Applications des mathématiques (74) Changements climatiques (3) Climat (1) Construction des mathématiques (4) COVID-19 (10) Cristallographie (2) cryptographie (2) GPS (2) Gravité (2) Géométrie (12) Histoire des mathématiques (27) Imagerie (2) Infini (2) Informatique (2) Informatique théorique (3) Jeux mathématiques (2) Logique mathématique (18) Lumière (5) Mathématiques de la planète Terre (18) Mathématiques et architecture (1) Mathématiques et arts (8) Mathématiques et astronomie (6) Mathématiques et biologie (7) Mathématiques et développement durable (9) Mathématiques et littérature (9) Mathématiques et musique (1) Mathématiques et médecine (11) Mathématiques et physique (3) Mathématiques et transport (5) Modélisation (1) Nombres (4) Pavages (5) Portrait d'un mathématicien (20) Portrait d'un physicien (3) Probabilités (8) Probabilités et statistique (19) Racines (2) Rubrique des Paradoxes (71) Section problèmes (41) Théorie des groupes (1) Éditorial (38) Épidémiologie (2)
    • Instagram
    • Facebook

    © 2025 Accromath