#include /* Pour printf */ #include /* Pour exit */ /* pgcd : algorithme d'Euclide Calcul du pgcd d de 2 nombre a et b Preconditions : a>0 et b>=0 Principe: pgcd(a,0)=a pgcd(a,b)=pgcd(b,a mod b) Exemple: a b a/b a%b -------------------- 12 18 0 12 18 12 1 6 12 6 2 0 -------------------- 6 0 - - pgcd(12,18)=pgcd(18,12)=pgcd(12,6)=pgcd(6,0)=6 => pgcd(12,18)=6 */ int pgcd(int a, int b) /* Plus Grand Commun Diviseur */ { /* Algorithme d'Euclide */ int p, q, r; int d; if (!(a>0 && b>=0)) { printf("Erreur parametres pgcd\n"); exit(1); /* Arret du programme */ } p = a; q = b; while (q!=0) { r = p%q; p = q; q = r; } d = p; return d; } int main(void) { int v1=12, v2=18,resultat; resultat = pgcd(v1,v2); printf("pgcd(%d,%d)=%d\n",v1,v2,resultat); return 0; }