c++实现本题目要求读入2个正整数A和B,输出它们的最大公约数和最小公倍数。 输入格式: 输入在一行中给出2个绝对值不超过1000的整数A和B。 输出格式: 在一行中输出A和B的最大公约数和最小公倍数。
时间: 2024-10-20 18:12:38 浏览: 24
在 C++ 中,你可以使用欧几里得算法(Euclidean Algorithm)来计算两个正整数 A 和 B 的最大公约数(Greatest Common Divisor,GCD),然后利用 GCD 和乘法原理来求出它们的最小公倍数(Least Common Multiple,LCM)。以下是步骤:
首先,我们需要编写一个函数 `gcd` 来计算两个数的最大公约数:
```cpp
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
```
接下来,我们可以使用 GCD 结果和原数相乘得到 LCM:
```cpp
int lcm(int a, int b) {
return abs(a * b) / gcd(a, b);
}
```
最后,在主程序中读取用户输入并输出结果:
```cpp
#include <iostream>
using namespace std;
int main() {
int A, B;
// 从标准输入读取 A 和 B
cin >> A >> B;
// 计算并输出最大公约数和最小公倍数
cout << "最大公约数(GCD): " << gcd(A, B) << endl;
cout << "最小公倍数(LCM): " << lcm(A, B) << endl;
return 0;
}
```
当你运行这个程序时,它会提示用户输入两个正整数,然后显示这两个数的最大公约数和最小公倍数。
阅读全文