最大公约数 最小公倍数
最大公约数
递归版:
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a%b); }
非递归版:
int gcd(int a, int b) { if (!a) return b; int c; while (b) {// 非递归版 c = b; b = a%b; a = c; } return a; }
最小公倍数
最小公倍数=两整数的乘积÷最大公约数
但要先除后乘,避免 a*b 溢出!
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a%b); }
非递归版:
int gcd(int a, int b) { if (!a) return b; int c; while (b) {// 非递归版 c = b; b = a%b; a = c; } return a; }
最小公倍数=两整数的乘积÷最大公约数
但要先除后乘,避免 a*b 溢出!