用c++设计一个求两正整数m和n的最大公约数的程序,m和n由键盘输入
时间: 2024-10-13 20:11:00 浏览: 37
最大公约数能同时被m和n整除的最大数。-c++程序设计(谭浩强完整版ppt)
在C++中,我们可以使用欧几里得算法(Euclidean Algorithm)来设计一个求解两个正整数最大公约数(Greatest Common Divisor, GCD)的程序。这个算法基于以下性质:对于任意正整数a、b,它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
以下是简单的步骤:
```cpp
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a; // 如果b为0,则a即为最大公约数
else
return gcd(b, a % b); // 递归调用gcd函数,将b和a除以b的余数作为新的参数
}
int main() {
int m, n;
cout << "请输入两个正整数m和n: ";
cin >> m >> n;
if (m < 0 || n < 0) { // 检查输入是否为正整数
cout << "输入错误,请输入正整数。" << endl;
return 1;
}
int result = gcd(m, n);
cout << "两个数字 " << m << " 和 " << n << " 的最大公约数是: " << result << endl;
return 0;
}
```
阅读全文