如何用C++编程来计算三个整数的最大公约数(和最小公倍数
时间: 2024-12-13 09:23:48 浏览: 6
C++ 实现求最大公约数和最小公倍数
5星 · 资源好评率100%
在C++中,我们可以使用欧几里得算法(也称为辗转相除法)来计算三个整数的最大公约数(Greatest Common Divisor,GCD)。对于最大公约数,首先找到前两个数的GCD,然后再将结果与第三个数求GCD。
以下是计算两个数GCD的函数示例:
```cpp
// 使用辗转相除法计算两数GCD
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
然后可以扩展为三个数的情况:
```cpp
// 计算三个数的GCD
int gcdThree(int a, int b, int c) {
int temp = gcd(a, b); // 首先计算a和b的GCD
return gcd(temp, c); // 再次使用辗转相除法计算GCD
}
```
计算最小公倍数(Least Common Multiple,LCM)则可以利用公式 `LCM(a, b) = |a * b| / GCD(a, b)`。因此,你可以先计算出三个数中的任意两对的LCM,最后再用这个结果和第三个数计算LCM。
```cpp
// 计算两数的LCM
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
// 对于三个数的LCM,我们同样递归地计算
int lcmThree(int a, int b, int c) {
int lcm_ab = lcm(a, b);
return lcm(lcm_ab, c);
}
```
阅读全文