/* Trouve et retourne le plus grand diviseur commun de deux entiers positifs. Travaille en essayant tous les diviseurs entiers entre le plus petit des deux entiers et 1, jusqu'à ce que le diviseur qui divise les deux entiers sans reste soit trouvé. Le code C est testé avec les compilateurs Microsoft et Borland */ unsigned int gcd(unsigned int int1, unsigned int int2) { unsigned int temp, trial_divisor; /* Bascule si nécessaire pour que int1 >= int2 */ if (int1 < int2) { temp = int1; int1 = int2; int2 = temp; } /* Teste maintenant chaque diviseur à partir de int2, jusqu'à ce que le diviseur commun soit trouvé. Ce ne peut jamais être une boucle infinie car 1 divise sans reste */ for (trial_divisor = int2; ((int1 % trial_divisor) != 0) || ((int2 % trial_divisor) != 0); trial_divisor--) ; return(trial_divisor); }