gcd(a, b),就是求a和b的最大公约数
lcm(a, b),就是求a和b的最小公倍数
首先gcd怎么求:
辗转相除法
while循环(gcd(a,b) == gcd(b, a%b))
LL gcd(LL a, LL b){
LL t;
while(b){
t = b;
b = a % b;
a = t;
}
return a;
}
也可以递归:
LL gcd(LL a, LL b){
if(b == 0) return a;
else return gcd(b, a%b);
}
LL gcd(LL a, LL b){
return b ? gcd(b, a%b) : a;
}
//两种都可以
那么lcm怎么求呢?
lcm = a * b / gcd(这样求可以吗????)
有时候a*b会很大,所以不能这样子
改一改:::: lcm = (a/gcd)*b;