用Python使用辗转相除法求最大公约数
时间: 2023-04-06 15:05:01 浏览: 205
好的,我可以回答这个问题。以下是使用Python实现辗转相除法求最大公约数的代码:
```
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
其中,a和b是要求最大公约数的两个数。使用递归的方式,每次将b和a%b作为新的a和b,直到b等于0,此时a就是最大公约数。
相关问题
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。
用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)
# 例子:求 18 和 24 的最大公约数和最小公倍数
a = 18
b = 24
print("18 和 24 的最大公约数为:", gcd(a, b))
print("18 和 24 的最小公倍数为:", lcm(a, b))
```
输出结果为:
```
18 和 24 的最大公约数为: 6
18 和 24 的最小公倍数为: 72
```
这里用到了 Python 的整数除法运算符 `//`,它可以返回整数的商,即去掉小数部分的除法结果。
相关推荐













