Python编写函数求两个整数的最小公倍数
时间: 2023-07-15 20:15:32 浏览: 90
可以使用以下方法来编写函数求两个整数的最小公倍数:
```python
def lcm(num1, num2):
# 选择较大的数
if num1 > num2:
greater = num1
else:
greater = num2
while True:
# 判断 greater 是否同时是 num1 和 num2 的倍数
if greater % num1 == 0 and greater % num2 == 0:
lcm = greater
break
greater += 1
return lcm
```
这个函数首先比较两个整数大小,然后从较大的数开始,逐步增加直到找到同时是两个数的倍数的数为止,这个数就是它们的最小公倍数。
相关问题
python编写函数求两个正整数的最小公倍数
### 回答1:
可以使用以下代码来编写一个函数,用于求两个正整数的最小公倍数:
```python
def lcm(a, b):
"""
求两个正整数的最小公倍数
"""
# 先求出两个数的最大公约数
gcd = math.gcd(a, b)
# 最小公倍数等于两数之积除以最大公约数
lcm = a * b // gcd
return lcm
```
其中,`math.gcd(a, b)` 是 Python 内置的求最大公约数的函数,`a * b // gcd` 表示两数之积除以最大公约数,即最小公倍数。
使用示例:
```python
>>> lcm(12, 18)
36
>>> lcm(7, 13)
91
```
### 回答2:
最小公倍数指的是两个以上整数公共的倍数中最小的一个,其中有一个方法可以用来求得两个正整数的最小公倍数,那就是辗转相除法。
辗转相除法又称为欧几里得算法,其实是一种求两个非负整数的最大公约数的方法。当需要求最小公倍数时, 只需将两个数想乘再除以它们的最大公约数即可得到。
我们用python语言把这个算法写成一个函数来实现:
```python
def gcd(a, b):
"""
最大公约数算法
"""
if b == 0:
return a
return gcd(b, a % b)
def lcm(a, b):
"""
最小公倍数算法
"""
return a * b // gcd(a, b)
```
以上函数是在Python语言中实现辗转相除法得到两个正整数的最小公倍数。通过这个函数可以实现两个整数的最大公约数的计算,以及它们的最小公倍数的计算。其中,gcd(a,b)用来求参数a和b的最大公约数,而lcm(a,b)用来求参数a和b的最小公倍数。在lcm函数中,我们可以看到最小公倍数等于a乘以b除以它们的最大公约数的结果,这是由于 a ╱ gcd(a,b) ✳ b 的结果就是这两个整数的最小公倍数。
以上就是关于python编写函数求两个正整数的最小公倍数的详细介绍。
### 回答3:
Python是一种高级编程语言,能够很容易地编写函数来解决许多问题,包括求两个正整数的最小公倍数。
最小公倍数是指两个或多个正整数中能够整除它们的最小整数。例如,6和9的最小公倍数为18。当然,这只是一个简单的样例。在编写一个通用函数时,我们需要考虑更多的情况。
首先,如果两个正整数中有1个为0,则它们的最小公倍数为0。因此,我们可以在函数的开头添加一个判断,如果其中任何一个数为0,则直接返回0。
接下来,我们需要找到这两个正整数的公共倍数。我们可以从它们的最大公约数开始,然后每次将其加上它们的最大公约数,直到它们的倍数相等。这个相等的倍数就是它们的最小公倍数。
我们可以使用Python中的math库来帮助我们找到两个正整数的最大公约数。
下面是一个用Python编写的求两个正整数最小公倍数的函数,代码如下:
``` python
import math
def lcm(x, y):
if x == 0 or y == 0:
return 0
else:
gcd = math.gcd(x, y)
lcm = (x*y)//gcd
return lcm
```
上述代码中,我们使用gcd函数从math库中找到了x和y的最大公约数,然后用x和y的乘积除以最大公约数得到最小公倍数lcm。
我们可以运行这个函数来检查它是否正确。例如,求6和9的最小公倍数:
``` python
print(lcm(6, 9))
```
输出结果为18,符合预期。
当然,我们也可以调用这个函数来应对更复杂的问题。无论是多么复杂的问题,Python都具有强大的函数编写能力,足以解决您所提出的任何问题。
编写函数求两个整数的最小公倍数
以下是一个编写函数求两个整数的最小公倍数的例子:
```python
def lcm(a, b):
for i in range(min(a, b), 0, -1):
if a % i == 0 and b % i == 0:
return a * b // i
c = int(input("请输入第一个数:"))
d = int(input("请输入第二个数:"))
print("这两个数的最小公倍数:")
print(lcm(c, d))
```
这个函数使用了欧几里得算法来求解两个整数的最小公倍数。首先,我们从两个数中较小的数开始递减循环,找到能同时整除两个数的最大数。然后,我们将两个数相乘,并除以这个最大公约数,得到最小公倍数。
阅读全文