long gcd(a, b) long a; long b; { register long t; do { if (a <= b) { t = a; a = b; b = t; } a %= b; } while (a); return (b); }