MATH_PGCD [Arithmetique]
Par Antoine Galmiche (Math4D v1)
Nouvelle recherche
Si (Faux)
` MATH_PGCD [Antoine Galmiche 07/2002]
` ---------------------------------------------
` Rappels mathématiques :
` PGCD = Plus Grand Commun Diviseur
` S'il est égal à 1, les deux nombres sont premiers entre eux :
` ils n'ont pas de diviseurs commun
` La méthode utilise l'algorithme d'Euclide
` Rappelons que PGCD x PPCM = produit
` ---------------------------------------------
` MATH_PGCD (Nombre1;Nombre2) -> Numérique
` Nombre1 (Numérique)
` Nombre2 (Numérique)
` Résultat (Numérique) PGCD de Nombre1 et Nombre2
` ---------------------------------------------
` MATHERROR
` 0 -> Pas d'erreur
` -1 -> Un des paramètres au moins est hors définition
` ---------------------------------------------
` EXEMPLES
` 12 = 2 x 2 x 3
` 50 = 2 x 5 x 5
` 51 = 3 x 17
` 52 = 2 x 2 x 13
` 53 premier
` MATH_PGCD (12;50) -> 2
` MATH_PGCD (12;51) -> 3
` MATH_PGCD (12;52) -> 4
` MATH_PGCD (12;53) -> 1 premiers entre eux
`
Fin de si
C_ENTIER LONG(MATHERROR)
C_ENTIER LONG($1;$2;$0)
$0:=0
` Traitement des erreurs
Au cas ou
: (($1<=0) | ($2<=0))
MATHERROR:=-1
Sinon
MATHERROR:=0
Fin de cas
` Algorithme
Si (MATHERROR=0)
C_ENTIER LONG($a;$r)
$a:=$1
$0:=$2
Repeter
$r:=$a%$0
Si ($r#0)
$a:=$0
$0:=$r
Fin de si
Jusque ($r=0)
Fin de si