/*
最大公约数 (递归算法),辗转相除法。
*/
int gcd (int x, int y)
{
if (y==0)
return x;
else
return gcd (y,x%y);
}
/* 辗转相除法基于如下原理:
两个整数的最大公约数等于其中较小的数和两数的相除的余数的最大公约数
那y和x%y如果余数为0,那y不就是最大公约数
补充:两个数的最小公倍数等于 x*y/gcb(x,y);
*/
最大公约数的循环写法: //原理也是一样的
int f(int a,int b)
{
while (b)
{
int t=a%b;
a=b;
b=t;
}
return a;
}
/* 两种算法读者可以自行选择