一·辗转相除法
(1)迭代实现
int Gcd(int a,int b)
{
while(b != 0)
{
int r = b;
b = a%b;
a = r;
}
return a;
}
(2)递归实现
int Gcd(int a,int b)
{
if(b == 0) return a;
return Gcd(b,a%b);
}
二·更相减损法
int Gcd(int a,int b)
{
while(a != b)
{
if( a>b ) a -= b;
else b -= a;
}
return a;
}
区别:辗转相除法比更相减损法效率更高,所用时间更少。