求最小公倍数的前提就是求最大公约数gcd点击我查看
有两个数a,b他们的最大公约数是c
那么他们的最小公倍数就是a*b/c
比如两个数4和6,他们的最大公约数就是2,他们的最小公倍数就是4*6/2=12
int lcm(int a,int b){
int c=gcd(a,b);
return a*b/c;
}
但是往往因为ab会出现溢出的情况(超出范围),会改成a/cb,这样最大程度上避免了溢出的情况
int lcm(int a,int b){
int c=gcd(a,b);
return a/c*b;
}