自己写的一个(递归实现):
int gcd(int a,int b)
{
if(a%b==0)
return b;
else
return gcd(b,a%b);
}
简化一下:
int gcd(int a,int b)
{
return !(a%b)?b:gcd(b,a%b);
}
网上找的一个,字更少:
int gcd(int m, int n)
{
return n? gcd(n,m%n) : m;
}
还有一个:
int Euclid_Algorithm (int m, int n)
{
int temp = m;
if (!m || !n) return 0;
if (m < n) {m = n; n = temp;}
while (1) {
if (!(m = m % n)) return n;
if (!(n = n % m)) return m;
}
}