/* binary GCD alg. Based on following facts.
If N and M are even, then gcd(N,M) = 2 * gcd (N/2, M/2)
If N even and M odd, then gcd(N,M) = gcd(N/2, M)
If N,M odd, then |N-M|>= 1; b >>= 1; ++t;}
while (! (a&1)) a >>= 1;
while (! (b&1)) b >>= 1;
while (a != b)
{
if (a > b)
{
a -= b;
do {a >>= 1;} while (! (a&1));
}
else {
b -= a;
do {b >>= 1;} while (! (b&1));
}
}
return(a<