编写一个函数,求两个正整数的最小公倍数。两个函数实现
时间: 2023-05-31 22:05:16 浏览: 100
方法一:
使用辗转相除法求两个正整数的最大公约数,然后用两个正整数的乘积除以最大公约数即可得到最小公倍数。
```
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)
```
方法二:
直接枚举两个正整数的倍数,找到第一个同时是两个正整数的倍数的数即可。
```
def lcm(a, b):
i = max(a, b)
while True:
if i % a == 0 and i % b == 0:
return i
i += 1
```
相关问题
编写一个函数求两个正整数的最小公倍数
可以使用辗转相除法求出两个正整数的最大公约数,然后通过两个数的乘积除以最大公约数得到最小公倍数。
下面是一个Python函数示例,可以求出两个正整数的最小公倍数:
```python
def lcm(x, y):
# 计算最大公约数
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# 计算最小公倍数
lcm = (x*y)//gcd(x,y)
return lcm
```
其中,`gcd` 函数用来计算最大公约数,`lcm` 函数则用来计算最小公倍数。函数中使用了 Python 中的整数除法 `//`,确保计算结果是整数。
编写一个函数,求两个正整数的最小公倍数
可以通过求两个正整数的最大公约数来计算它们的最小公倍数。最小公倍数等于两数之积除以它们的最大公约数。
以下是一个求两个正整数的最小公倍数的 Python 函数:
```python
def lcm(x, y):
# 选择较大的数
if x > y:
greater = x
else:
greater = y
while True:
if greater % x == 0 and greater % y == 0:
lcm = greater
break
greater += 1
return lcm
```
这个函数首先选择较大的数,然后从这个数开始递增,直到找到同时是两个数的倍数的最小的数。最后,它返回这个数作为两个输入数的最小公倍数。
阅读全文