-
最大公约数和最小公倍数
gcd()最大公约数:辗转相除法
-
递归方法:简单,不用判断a,b大小,因为 如果a<b 调用gcd(b,a%b)==变为gcd(b,a)
-
迭代,需要判断一下a b大小,若a<b 交换 然后while循环
lcm最小公倍数
lcm(a,b) = a * b / gcd(a,b)
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
//非递归最大公约数 辗转相除
int gcd(int a,int b)
{
if(a<b) swap(a,b);
while(b!=0)
{
int t = b;
b = a % b;
a = t;
}
return a;
}
int lcm(int a,int b)
{
return a*b/gcd(a,b);
}