用Python编写:编写函数,用欧几里得算法(辗转相除法)求两个数中的最大公约数。(不要用递归)
时间: 2024-05-02 08:21:56 浏览: 82
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
```
注:欧几里得算法的原理是,两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。不断用较小数和余数替换原来的两个数,直到较小数为0,此时较大数即为最大公约数。
相关问题
用python编写函数,用欧几里得算法(辗转相除法)求两个数中的最大公约数。(不要用递归)
def gcd(a, b):
while b != 0:
temp = b
b = a % b
a = temp
return a
# 测试
print(gcd(12, 18)) # 6
print(gcd(24, 36)) # 12
print(gcd(17, 23)) # 1
Python编写程序,输入正整数n,m,通过递归函数用辗转相除法(欧几里得算法)求n,m的最大公约数
可以使用如下代码实现:
```python
def gcd(n, m):
if m == 0:
return n
else:
return gcd(m, n % m)
n = int(input("请输入正整数n:"))
m = int(input("请输入正整数m:"))
print("最大公约数是:", gcd(n, m))
```
在这个代码中,`gcd` 函数使用递归方式实现了辗转相除法(欧几里得算法)。如果 `m` 等于 0,那么 `n` 就是最大公约数;否则,递归调用 `gcd(m, n % m)`,并返回结果。最后,我们使用 `input` 函数获取用户输入的 `n` 和 `m`,并输出计算结果。
阅读全文