求最大公约数
求字的最大公约数
辗转相除法
java代码实现
1 | private static int gcd(int a, int b) { |
求多个数的最大公约数
对于多个数的最大公约数,大概是这么一个情况
先求出前面的数的最大公约数,得到的结果和后面的数继续求最大公约数
代码实现
1 | private static int gcd(int[] nums) { |
为什么可以这样
对于多个数求最大公约数,先把每个数变成质数相乘的形式
63 = 3 * 3 * 7
18 = 2 * 3 * 3
9 = 3 * 3
45 = 5 * 3 * 3
求他们的最大公约数,无非就是找到他们相同的质数
对于找n个数的相同的质数部分,是不是就等于找到前n-1个数的质数相同的部分以后,再和当前数找最大相同质数部分。
这里说得不是很清,水平有限😢
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆流的博客!