编写程序(Python),输入正整数n,m,通过递归函数用辗转相除法求n,m的最大公约数(第一行为输入,第二行为输出)
时间: 2024-04-29 21:21:57 浏览: 77
以下是Python程序代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
n = int(input("请输入正整数n:"))
m = int(input("请输入正整数m:"))
print("最大公约数为:", gcd(n, m))
```
运行程序后,会提示输入正整数n和m,然后输出它们的最大公约数。
相关问题
python函数递归利用辗转相除法(欧几里德法)求两个正整数的最大公约数。
可以使用递归的方式来利用辗转相除法求两个正整数的最大公约数,代码如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
在这个递归函数中,如果b为0,则返回a,否则返回gcd(b, a % b),即b和a除以b的余数的最大公约数。这个函数的实现就是利用辗转相除法,每次将两个数中较大的数除以较小的数取余,直到余数为0为止,余数为0时的除数即为这两个数的最大公约数。
编写递归函数,求两个整数的最大公因数(辗转相除法)。编写主函数,输入两个整数,调用函数求最大公因数,在主函数中输出。 输入:两个正整数。 输出:一个整数。 输入输出样例: 输入: 24 42 输出: 6
好的,我理解了你的要求。以下是代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
if __name__ == '__main__':
a, b = map(int, input().split())
ans = gcd(a, b)
print(ans)
```
请问还有其他问题吗?
阅读全文