Le Plus Grand Diviseur Commun (PGCD) de deux nombres correspond à la valeur la plus grande commune entre eux. Le PGCD permet de réduire des fractions et de résoudre certains problèmes de comparaisons de quantités par exemple.
Un nombre divise un autre nombre si le résultat de la division est un nombre entier.
Par exemple, 7 divise 21 car 21 / 7 = 3. De même, 12 est un diviseur de 144 car 144 / 12 = 12. Le reste de chaque division est nul.
Le chiffre 7 n'est par contre pas un diviseur de 22 car 22 / 7 = 3,1428 (approché au 4e chiffre après la virgule).
Pour trouver le PGCD de deux nombres, plusieurs méthodes existent.
Exemple par la méthode d'Euclide
def pgcd(a, b):
if a < b:
b, a = a, b
r = 1
while r > 0:
q = int(a / b)
r = int(a % b)
a = b
b = r
return (a, b)
print(pgcd(132, 72))
print(pgcd(60, 36))
print(pgcd(2967, 798))
print(pgcd(45, 18))
print(pgcd(58, 34))
Le Plus Petit Commun Multiple (PPCM) de deux nombres correspond à l'ensemble des facteurs premiers apparaissant dans chaque décomposition des nombres, en prenant la puissance la plus importante à chaque fois...Ouf...Pas simple. Une chose remarquable est que PGCD(a, b) * PPCM(a, b) = a * b.
Pour trouver le PPCM de deux nombres, nous pouvons chercher leur PGCD et diviser a * b par le PGCD. Nous ne ferons pas de démonstration
en ce sens.
L'autre solution consiste en la décomposition en facteurs premiers et à prendre la puissance de chacun de ces facteurs apparaissant
en commun dans chaque décomposition.
Par exemple, si l'on cherche le PPCM(132, 72) nous allons décomposer les deux nombres en facteurs premiers :
Il n'y a pas d'exemple de code particulier car il suffit de prendre le PGCD des nombres et de le diviser par la multiplication des nombres.