python用递归方法编写求最大公因子程序。两个正整数x和y的最大公因子定义为:如果y<=x且x mod y=0时,gcd(x,y)=y;如果y>x时,gcd(x,y)=gcd(y,x);其他情况,gcd(x,y)=gcd(y,x mod y)。这里,x mod y是求x除以y的余数。
时间: 2023-09-02 18:14:49 浏览: 86
Python基于递归算法求最小公倍数和最大公约数示例
好的,以下是Python代码示例:
```python
def gcd(x, y):
if y <= x and x % y == 0:
return y
elif y > x:
return gcd(y, x)
else:
return gcd(y, x % y)
```
这个函数和上面的C++函数是一样的,首先判断y是否小于等于x并且x可以被y整除,如果是,则返回y。如果y大于x,则交换x和y的位置再递归调用。否则,递归调用gcd(y, x%y)。这个算法的时间复杂度是O(log n),其中n是x和y的较大值。
阅读全文