在C语言中,求最小公倍数的方法有以下几种:
- 暴力法:从1开始逐个尝试两个数的倍数,直到找到它们的公倍数。
int lcm(int a, int b) { int max = (a > b) ? a : b; int lcm = max; while (1) { if (lcm % a == 0 && lcm % b == 0) break; lcm += max; } return lcm; }
- 辗转相除法:利用两个数的最大公约数来求最小公倍数。最小公倍数等于两数的乘积除以最大公约数。
int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int lcm(int a, int b) { return (a * b) / gcd(a, b); }
- 穷举法:通过遍历所有可能的公倍数,比较大小,找出最小的公倍数。
int lcm(int a, int b) { int max = (a > b) ? a : b; int lcm = max; while (1) { if (lcm % a == 0 && lcm % b == 0) break; lcm += max; } return lcm; }
- 使用最小公约数的性质:最小公倍数等于两数乘积除以最大公约数。
int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int lcm(int a, int b) { return (a * b) / gcd(a, b); }
这些方法都可以用来求解最小公倍数问题,具体使用哪种方法可以根据具体情况选择。