/* Récursivité utilisée */
int pgcd(int m, int n)
{
if (n==0) return m;
else return pgcd(n, m%n);
}
Sans récursivité car dangereux pour la stack:
DWORD pgcd(DWORD a, DWORD b)
{
DWORD t;
if(!a || !b) return 0;
if(a < b) {t = a; a = b; b = t;}
for(;;) {
if((t = a % b) == 0) return b;
a = b; b = t;
}
}