用子函数求最大公约数和最小公倍数c++
时间: 2025-02-13 20:08:59 浏览: 40
### C++编程实现求最大公约数和最小公倍数的子函数
#### 使用标准库函数
C++ 标准库中的 `<numeric>` 头文件提供了 `std::gcd` 和 `std::lcm` 函数,可以直接用于计算两个整数的最大公约数和最小公倍数。
```cpp
#include <iostream>
#include <numeric> // 导入 numeric 库
int main() {
int a, b;
std::cin >> a >> b;
// 调用标准库函数计算最大公约数和最小公倍数
int greatest_common_divisor = std::gcd(a, b);
int least_common_multiple = std::lcm(a, b);
std::cout << "最大公约数:" << greatest_common_divisor << '\n';
std::cout << "最小公倍数:" << least_common_multiple << '\n';
return 0;
}
```
此方法简单易用,适合现代 C++ 开发环境[^1]。
#### 自定义函数实现
如果不想依赖于标准库,也可以自定义函数来实现这两个功能。下面是一个基于欧几里得算法的经典实现方式:
```cpp
#include <iostream>
// 定义求最大公因数的函数
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
// 定义求最小公倍数的函数
int lcm(int a, int b) {
return (a / gcd(a, b)) * b; // 防止溢出先做除法再乘法
}
int main(){
int a, b;
std::cin >> a >> b;
std::cout << "最小公倍数:" << lcm(a, b) << '\n';
std::cout << "最大公因数:" << gcd(a, b) << '\n';
return 0;
}
```
这段代码展示了如何通过递归的方式实现最大公约数的计算,并在此基础上进一步实现了最小公倍数的计算逻辑[^2]。
阅读全文
相关推荐


















