vc++输入两个正整数m和n。求其最大公约数和最小公倍数。
时间: 2025-01-01 07:40:55 浏览: 4
在VC++中,计算两个正整数的最大公约数(Greatest Common Divisor,GCD)和最小公倍数(Least Common Multiple,LCM),可以利用欧几里得算法(Euclidean Algorithm)来找到GCD,然后通过公式 GCD(a, b) * LCM(a, b) = a * b 计算LCM。
以下是简单的步骤:
1. 定义一个函数,例如 `gcd`,接收两个参数 `int m` 和 `int n`,用于递归计算GCD:
```cpp
int gcd(int m, int n) {
if (n == 0)
return m;
else
return gcd(n, m % n);
}
```
2. 然后定义另一个函数 `lcm`,使用上面的GCD结果和两个数直接相乘除以GCD得到LCM:
```cpp
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
3. 最后,在主程序中获取用户输入的m和n,并调用这两个函数:
```cpp
#include <iostream>
using namespace std;
int main() {
int m, n;
cout << "请输入两个正整数: ";
cin >> m >> n;
int gcd_value = gcd(m, n);
int lcm_value = lcm(m, n);
cout << "最大公约数(GCD): " << gcd_value << endl;
cout << "最小公倍数(LCM): " << lcm_value << endl;
return 0;
}
```
阅读全文