c++求输入两个整数,输出最大公约数和最小公倍数
时间: 2024-10-23 09:15:44 浏览: 81
C++ 实现求最大公约数和最小公倍数
5星 · 资源好评率100%
在C++中,我们可以使用欧几里得算法(也称辗转相除法)来求两个整数的最大公约数(Greatest Common Divisor, GCD),然后利用公式 `lcm(a, b) = |a * b| / gcd(a, b)` 来计算它们的最小公倍数(Least Common Multiple, LCM)。以下是简单的步骤:
1. 定义一个函数 `gcd` 计算最大公约数,通常采用递归形式:
```cpp
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
2. 定义另一个函数 `lcm` 根据上述公式计算最小公倍数:
```cpp
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
```
3. 主函数中获取用户输入的两个整数,然后调用这两个函数:
```cpp
#include <iostream>
using namespace std;
int main() {
int num1, num2;
cout << "请输入两个整数: ";
cin >> num1 >> num2;
// 求最大公约数
int gcdResult = gcd(num1, num2);
// 求最小公倍数
int lcmResult = lcm(num1, num2);
cout << "最大公约数 (GCD): " << gcdResult << endl;
cout << "最小公倍数 (LCM): " << lcmResult << endl;
return 0;
}
```
阅读全文