最大公约数和最小公倍数:辗转相除法
给定两个整数 a 和 b。
求最大公约数的办法可以使用辗转相除法,时间复杂度是 O(logn),n 是 max(a,b)。
求最小公倍数的方法是利用 GCD:将两数相乘再除以 GCD。这里要注意防止溢出,可以使用其中一个数 a 先除以 GCD 再乘以另一个数 b。
最大公约数 GCD: 辗转相除法
GCD(除数,被除数) = GCD(余数,除数)
,核心就是将余数变成新的除数,最后返回被除数。
1 |
|
最小公倍数 LCM
想求 LCM,必须先求 GCD。
1 | private int lcm(int a, int b) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LuoRongLuoRong!
评论