用Python写辗转相除法求最大公约数
时间: 2023-11-19 07:56:19 浏览: 76
Sure, I'd be happy to help with that! Here's some Python code implementing the extended Euclidean algorithm (which includes the repeated subtraction method you mentioned) to compute the greatest common divisor (GCD) of two numbers:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# Example usage:
a = 48
b = 60
print(gcd(a, b)) # Output: 12
```
Note that this code assumes both `a` and `b` are positive integers. If you need to handle negative numbers, you can add some extra logic to account for that.
相关问题
使用辗转相除法求最大公约数
以下是使用辗转相除法求最大公约数的Python代码:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
这个函数使用递归的方式实现了辗转相除法,当b等于0时,a就是最大公约数;否则,递归调用gcd函数,将b和a%b作为参数传入。
python辗转相除法求最大公约数和循坏次数
以下是使用Python实现辗转相除法求最大公约数和循环次数的代码:
```python
def gcd(a, b):
count = 0
while b != 0:
count += 1
a, b = b, a % b
return a, count
```
其中,a和b分别为要求最大公约数的两个数,count记录循环次数。
例如,求50和15的最大公约数,可以使用以下代码:
```python
a, count = gcd(50, 15)
print("最大公约数为:", a)
print("循环次数为:", count)
```
输出结果为:
```
最大公约数为: 5
循环次数为: 3
```
说明辗转相除法需要循环3次才能求出50和15的最大公约数为5。
阅读全文