python中辗转相除法求最大公约数
时间: 2023-09-21 20:11:22 浏览: 104
辗转相除法是求解两个数的最大公约数的一种方法,也叫欧几里得算法。
在Python中,可以使用如下代码实现辗转相除法:
```
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中,a和b为要求最大公约数的两个数。递归调用gcd函数,直到b为0,此时a就是最大公约数。
例如,要求48和60的最大公约数,可以这样调用gcd函数:
```
print(gcd(48, 60))
```
输出结果为12,即48和60的最大公约数为12。
相关问题
python中用辗转相除法求最大公约数
非常感谢您的提问!在Python中可以使用辗转相除法实现求最大公约数,代码如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a%b)
```
以上是回答您的问题,如果您有其他问题,欢迎继续提问。
Python递归辗转相除法求最大公约数
递归辗转相除法是一种求最大公约数的常用方法。它基于以下原理:两个数的最大公约数等于其中较小的数与两数相除余数的最大公约数。下面是使用Python递归辗转相除法求最大公约数的示例代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 示例
num1 = 36
num2 = 48
result = gcd(num1, num2)
print("最大公约数为:", result)
```
在上述代码中,`gcd` 函数接受两个参数 `a` 和 `b`,并使用递归的方式求它们的最大公约数。当 `b` 为 0 时,递归结束,返回 `a` 作为最大公约数。否则,递归调用 `gcd(b, a % b)` 来求 `a` 和 `b` 的余数,并将其作为新的参数传入函数中。
以上代码输出的结果为:
```
最大公约数为: 12
```
这样,我们就使用递归辗转相除法成功求得了36和48的最大公约数12。
阅读全文