/* Trouve et retourne le plus grand diviseur commun de deux entiers positifs. Travaille en soustrayant le plus petit entier du plus grand jusqu'à ce que l'on trouve une égalité (dans ce cas c'est le PGDC), ou bien jusqu'à ce que le plus grand entier soit inférieur au plus petit, dans ce cas les deux entiers échangent leur rôle et nous continuons. */ unsigned int gcd(unsigned int int1, unsigned int int2) { unsigned int temp; /*Si les deux entiers sont égaux, nous avons trouvé le PGDC*/ if (int1 == int2) { return(int1); } /* Bascule si nécessaire pour que int1 >= int2 */ if (int1 < int2) { temp = int1; int1 = int2; int2 = temp; } /* Soustrait int2 de int1 tant que int1 est supérieur */ do { int1 -= int2; } while (int1 > int2); /* Appelle la fonction à poursuivre l'opération en récursivité */ return(gcd(int1, int2)); }