最小公约数和最大公倍数是我经常要用到的东西,最近用到了好几次,都写的不是很好,所以我准备做一个专门的总结.
先讲讲定义:
下面的地址都是引用与维基百科
最大公因数(英语:highest common factor,hcf)
也称最大公约数(英语:greatest common divisor,gcd)
lcm是英语中“最小公倍数”一词(least common multiple)的首字母缩写
PS:吐槽,一开始我连gcd和lcm都不晓得是啥.觉得怪怪的.
最大公因数的求法
1 素因数分解法 和短除法
这个只能在计算两个较小的数时应用,在计算较大的值的时候,会非常的不方便.
2 辗转相除法
用的最多的方法.而且也好用.
但是原理我搞的不是很清楚.
只能理解一个正方形的东西.
下面还是贴一个地址.
贴个柳神的代码:
long long gcd(long long t1, long long t2) {
return t2 == 0 ? t1 : gcd(t2, t1 % t2);
}
最小公倍数的求法
最简单的方法,就是
A B (A 和B就是两个数)
gcd是他们的公因数
lcm=A*B/gcd;