最大公因数和最小公倍数求法(common divisor and common multiple)
欧几里德算法也就是辗转相除法,有着2000年的历史了。欧几里德算法依据的算法理论是一个定理:
gcd(a,b) = gcd(b,a mod b)。
common divisor: 最大公因数
int gcd(int m, int n)
{
if(m<n)
{
int tmp;
tmp=m;
m=n;
n=tmp;
}
if(n==0)
{
return m;
}
else
return gcd(n,m%n);
}
common multiple:最小公倍数
int gbs(int m, int n)
{
return m*n/(gcd(m,n));
}
如下: