用python写代码求最小公倍数,要求用辗转相除法先求最大公约数再求最小公倍数
时间: 2023-03-19 19:24:01 浏览: 75
以下是使用 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()` 用于求解最小公倍数。在 `gcd()` 函数中,我们使用辗转相除法求解最大公约数。在 `lcm()` 函数中,我们先调用 `gcd()` 函数求出两个数的最大公约数,然后将两个数相乘除以最大公约数得到最小公倍数。
下面是一个例子,演示如何使用这两个函数来求解最小公倍数:
```python
a = 36
b = 48
print(f"最小公倍数为 {lcm(a, b)}")
```
输出结果为:
```
最小公倍数为 144
```
即 36 和 48 的最小公倍数为 144。
相关问题
先用辗转相除法求最大公约数,再用最大公约数求最小公倍数python用while循环
好的,以下是基于 while 循环的 Python 代码:
```python
# 定义函数求最大公约数
def gcd(a, b):
while b != 0:
remainder = a % b
a = b
b = remainder
return a
# 定义函数求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
# 输入两个数
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
# 调用函数求最大公约数和最小公倍数,并输出结果
gcd_result = gcd(num1, num2)
lcm_result = lcm(num1, num2)
print("{0}和{1}的最大公约数为:{2}".format(num1, num2, gcd_result))
print("{0}和{1}的最小公倍数为:{2}".format(num1, num2, lcm_result))
```
这个程序会要求用户输入两个数,然后调用 `gcd` 函数和 `lcm` 函数分别计算最大公约数和最小公倍数,并输出结果。其中 `gcd` 函数使用 while 循环实现辗转相除法,而 `lcm` 函数则利用了最大公约数的性质。
先用辗转相除法求最大公约数,再用最大公约数求最小公倍数python
好的,下面是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)
# 输入两个数
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
# 调用函数求最大公约数和最小公倍数,并输出结果
print("{0}和{1}的最大公约数为:{2}".format(num1, num2, gcd(num1, num2)))
print("{0}和{1}的最小公倍数为:{2}".format(num1, num2, lcm(num1, num2)))
```
执行结果:
```
请输入第一个数:12
请输入第二个数:18
12和18的最大公约数为:6
12和18的最小公倍数为:36
```