正整数a与b的最大公约数是指a与b的所有公约数中最大的那个公约数
一般用gcd(a,b)来表示a和b的最大公约数
而求解最大公约数常用欧几里得算法(即辗转相除法)
【定义】
设a、b均为正整数,则gcd(a,b)=gcd(b,a%b)
【注意】
0和任意一个整数a的最大公约数都是a
(不是0)
int gcd(int a,int b)
{
if(b==0)
return a;
else
return gcd(b,a%b);
}
最小公倍数:
正整数a与b的最小公倍数是指a与b的所有公倍数中最小的那个公倍数
lcm(a,b)
最小公倍数的求解在公倍数的基础上进行
当得到a和b的最大公约数d之后
可以马上得到a和b的最小公倍数是ab/d
由于ab在实际计算时有可能溢出
因此写为:
a/db
a/d(一定整除)因为是最大公约数