请用python代码写一个辗转相除法求最大公约数和最小公倍数
时间: 2023-06-01 17:05:12 浏览: 106
好的,以下是用 Python 语言实现辗转相除法求最大公约数和最小公倍数的代码:
```python
def gcd(a, b): # 辗转相除法求最大公约数函数
if b == 0: # 若余数为 0,则 a 即为最大公约数
return a
else:
return gcd(b, a % b)
def lcm(a, b): # 求最小公倍数函数
return a * b / gcd(a, b)
# 示例
a = 54
b = 72
print("a和b的最大公约数为:", gcd(a, b))
print("a和b的最小公倍数为:", lcm(a, b))
```
输出结果为:
```
a和b的最大公约数为: 18
a和b的最小公倍数为: 216.0
```
相关问题
python辗转相除法求最大公约数和最小公倍数
Python中的辗转相除法可以用以下代码实现:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
```
其中,`gcd`函数用于求最大公约数,`lcm`函数用于求最小公倍数。
辗转相除法的基本思想是:用较大的数除以较小的数,再用余数去除较小的数,如此反复,直到余数为为止。最后的除数就是最大公约数,而最小公倍数等于两数之积除以最大公约数。
例如,求出30和45的最大公约数和最小公倍数,可以这样调用函数:
```python
>>> gcd(30, 45)
15
>>> lcm(30, 45)
90
```
因此,30和45的最大公约数是15,最小公倍数是90。
用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 的整数除法运算符 `//`,它可以返回整数的商,即去掉小数部分的除法结果。
阅读全文