c++怎么求最小公倍数
时间: 2025-05-19 14:15:13 浏览: 17
### C++ 实现最小公倍数算法
以下是基于欧几里得算法实现的最小公倍数计算方法。该方法通过先求取两个整数的最大公约数来间接得到它们的最小公倍数。
#### 使用自定义函数实现
此代码片段展示了如何手动编写 `gcd` 和 `lcm` 函数以分别计算最大公约数和最小公倍数:
```cpp
#include <iostream>
// 计算最大公约数 (Greatest Common Divisor)
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 计算最小公倍数 (Least Common Multiple)
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
std::cout << "请输入两个正整数: ";
std::cin >> num1 >> num2;
int leastCommonMultiple = lcm(num1, num2);
std::cout << "这两个数的最小公倍数是: " << leastCommonMultiple << std::endl;
return 0;
}
```
上述代码利用了递归形式的欧几里得算法来获取最大公约数[^2],并进一步将其用于计算最小公倍数。
#### 利用标准库 `<numeric>` 中的功能
现代 C++ 提供了一个更简洁的方式——直接调用头文件 `<numeric>` 中预定义好的 `std::gcd` 和 `std::lcm` 函数:
```cpp
#include <iostream>
#include <numeric> // 包含 std::gcd 和 std::lcm
int main() {
int num1, num2;
std::cout << "请输入两个正整数: ";
std::cin >> num1 >> num2;
int greatestCommonDivisor = std::gcd(num1, num2); // 调用标准库中的 GCD 函数
int leastCommonMultiple = std::lcm(num1, num2); // 调用标准库中的 LCM 函数
std::cout << "最大公约数: " << greatestCommonDivisor << std::endl;
std::cout << "最小公倍数: " << leastCommonMultiple << std::endl;
return 0;
}
```
这种方法不仅简化了程序逻辑结构,还提高了可读性和可靠性[^3]。
---
阅读全文
相关推荐
















