python函数返回两个数的最大公约数
时间: 2024-03-08 07:46:59 浏览: 23
可以使用欧几里得算法来实现:
```python
def gcd(a,b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
该函数接受两个参数a和b,并递归地调用gcd函数,直到b为0为止。当b为0时,a就是最大公约数,所以将a返回。如果b不为0,则将b和a%b作为参数再次调用gcd函数。
相关问题
Python返回两个数的最大公约数
Python可以使用欧几里得算法(辗转相除法)来返回两个数的最大公约数。该算法的递归版本实现如下:
```python
def gcd(p, q):
if q == 0:
return p
return gcd(q, p % q)
```
其中,p和q为需要求最大公约数的两个数。该函数会递归调用自身,直到q等于0,此时返回p。否则,返回q和p%q的最大公约数。
示例调用:
```python
print(gcd(24, 36)) # 输出12
```
python编写函数求两个数最大公约数和最小公倍数。
可以使用辗转相除法来求解最大公约数,同时可以利用最大公约数求解最小公倍数。
以下是一个求解两个数最大公约数和最小公倍数的 Python 函数:
```python
def gcd_lcm(a, b):
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
lcm = a * b // gcd(a, b)
return gcd(a, b), lcm
```
使用示例:
```python
>>> gcd_lcm(12, 18)
(6, 36)
>>> gcd_lcm(24, 36)
(12, 72)
```
函数 `gcd_lcm` 接受两个参数 `a` 和 `b`,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。函数内部定义了一个 `gcd` 函数,使用递归的方式来实现辗转相除法求解最大公约数。最小公倍数可以通过公式 `lcm = a * b // gcd(a, b)` 来求解。