编写程序并分析:求两个数m和n的最大公约数。
时间: 2023-06-01 10:03:55 浏览: 57
程序如下:
```python
def gcd(m, n):
if n == 0:
return m
else:
return gcd(n, m % n)
```
程序分析:
- 采用递归方式实现。
- 如果n等于0,则返回m作为最大公约数。
- 否则,递归调用函数gcd,传入参数n和m除以n的余数,直到n等于0返回最大公约数。
相关问题
:编写程序:输人两个正整数m和n,求其最大公约数和最小公倍数
以下是Python编写求最大公约数和最小公倍数的程序:
```python
# 定义函数,求最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 定义函数,求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 输入两个正整数
m, n = map(int, input("请输入两个正整数,并用逗号连接:").split(","))
# 输出最大公约数和最小公倍数
print(str(m) + "和" + str(n) + "的最大公约数是:" + str(gcd(m, n)))
print(str(m) + "和" + str(n) + "的最小公倍数是:" + str(lcm(m, n)))
```
c++编写程序:输人两个正整数m和n,求其最大公约数和最小公倍数
以下是C++编写程序,输入两个正整数m和n,求其最大公约数和最小公倍数的代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
int m, n, temp, gcd, lcm;
cout << "请输入两个正整数m和n:" << endl;
cin >> m >> n;
// 求最大公约数
temp = m % n;
while (temp != 0) {
m = n;
n = temp;
temp = m % n;
}
gcd = n;
// 求最小公倍数
lcm = m * n / gcd;
cout << "最大公约数为:" << gcd << endl;
cout << "最小公倍数为:" << lcm << endl;
return 0;
}
```