int pgcd ( int a, int b) { int p = 1; while (p!=0) { p=a%b; a=b; b=p; } return a; } void simplifie2 (int *num, int * denom) { int p = pgcd (num, denom); *num/=p; *denom/=p; } int simplifie (int *num, int *denom) { if (*denom==0) return 0; simplifie2(num,denom); return 1; }

Et oui, il faut des fois contourner l'énoncé. Je calcule tout d'abord le pgcd des deux nombres (plus grand commun diviseur) et puis je divise ces deux nombres par le pgcd :). Je n'ai pas demandé le calcul du pgcd car tout le monde n'a pas u la chance de faire des mathématiques à un niveau de première année de fac, et donc, l'algorithme d'euclide n'est pas évident pour tout le monde.