数论--最大公约数gcd和最小公倍数lcm

记gcd(a,b)为a,b的最大公约数

记lcm(a,b)为a,b的最小公倍数

可知lcm=a*b/gcd,由于a*b可能过大,我们写成lcm=a/gcd*b

 

辗转相除法求gcd

递归写法:

1 long long gcd(long long a,long long b)
2 {
3     return b ? gcd(b, a%b) : a;
4 }

 

几个小公式:

gcd(ka, kb) = k * gcd(a, b)

lcm(ka, kb) = k * lcm(a, b)

lcm(S/a, S/b) = S/gcd(a, b)

posted @ 2017-10-04 19:40  东流vip  阅读(226)  评论(0编辑  收藏  举报