Python编写函数,输入两个正整数求这两个数的最小公倍数,并输出结果
时间: 2024-03-16 07:47:03 浏览: 189
可以使用以下代码实现:
```python
def lcm(a, b):
"""
求两个数的最小公倍数
"""
# 先求出两个数的最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 最小公倍数为两数之积除以最大公约数
return a * b // gcd(a, b)
# 输入两个正整数
a = int(input("请输入第一个正整数: "))
b = int(input("请输入第二个正整数: "))
# 求最小公倍数并输出结果
print("{}和{}的最小公倍数为{}".format(a, b, lcm(a, b)))
```
其中,`lcm` 函数用于求两个数的最小公倍数,内部使用递归求解最大公约数,最终返回两数之积除以最大公约数。程序通过 `input` 函数获取用户输入的两个正整数,并调用 `lcm` 函数计算最小公倍数,最终使用 `print` 函数输出结果。
相关问题
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函数,输入两个正整数,求两个正整数的最小公倍数
以下是一个简单的实现:
```python
def lcm(a, b):
"""
计算a和b的最小公倍数
"""
# 先计算它们的最大公约数
gcd = 1
for i in range(1, min(a, b) + 1):
if a % i == 0 and b % i == 0:
gcd = i
# 最小公倍数等于两数之积除以最大公约数
return a * b // gcd
```
我们可以使用该函数来计算任意两个正整数的最小公倍数。例如:
```python
>>> lcm(3, 5)
15
>>> lcm(12, 18)
36
>>> lcm(7, 13)
91
```
阅读全文