最大公约数与最小公倍数
一、概念
最大公约数:就是当前几个数字中公有因数中组大的一个
最小公倍数:当前几个数字中倍数最小的一个
核心公式: X*Y = 最大公约数* 最小公倍数
二、求最大公约数的三种方式
1、辗转相除
代码实现:
/* 辗转相除 */ int passedBy(int x, int y) { int n = y; while (x % y != 0) { n = x % y; x = y; y = n; } return n; }
2、辗转相减
代码实现
/* 辗转相减 */ int passedSubtracting(int x ,int y) { while (x != y) { if (x > y) { x = x - y; } else { y = y - x; } } return x; }
3、穷举
代码实现
/* 穷举法 */ int exhaustion(int x, int y) { int temp = 0; for (temp = x;; temp--) { if (x % temp == 0 && y % temp == 0) { break; } } return temp; }
三、求最小公倍数
求最小公倍数,利用公式,首先求最大公约数
/* 利用最大公约数,求最小公倍数 */ int fx(int x,int y) { int res = passedSubtracting(x,y); return x * y / res; }
四、拓展
当求n个数字的最大公约数与最小公倍数(n >2)
参考:https://blog.csdn.net/qq_34793133/article/details/80305401