编写函数,求2个正整数的最小公倍数,python给出代码
时间: 2023-09-27 07:05:55 浏览: 134
用python编写两个正整数的最大公约数和最小公倍数的小程序
### 回答1:
我们可以使用辗转相除法来求两个正整数的最小公倍数。辗转相除法也被称为欧几里得算法,可以快速求出两个数的最大公约数。下面是使用 Python 编写的函数:
```
def lcm(a, b):
if a > b:
greater = a
else:
greater = b
while(True):
if((greater % a == 0) and (greater % b == 0)):
lcm = greater
break
greater += 1
return lcm
print(lcm(4, 6)) # 输出 12
print(lcm(15, 20)) # 输出 60
```
上面的函数首先确定两个数中较大的数,然后使用一个无限循环来枚举比较大的数。在每次循环中,它检查当前枚举的数是否可以被两个数整除,如果可以,则找到了最小公倍数,并跳出循环。否则,它将继续枚举更大的数。
### 回答2:
可以使用以下代码来编写一个函数,用于求两个正整数的最小公倍数:
```python
def get_lcm(num1, num2):
# 求两个数的最大公约数
def get_gcd(a, b):
while b:
a, b = b, a % b
return a
# 最小公倍数 = 两数的乘积 / 最大公约数
lcm = (num1 * num2) // get_gcd(num1, num2)
return lcm
# 测试代码
x = int(input("请输入第一个正整数: "))
y = int(input("请输入第二个正整数: "))
result = get_lcm(x, y)
print("最小公倍数为:", result)
```
在上述代码中,我们定义了一个嵌套函数`get_gcd`,用于求两个数的最大公约数,并通过循环和取余操作来实现辗转相除法求解最大公约数。然后,我们通过乘法和除法计算得出最小公倍数,并将最小公倍数作为函数的返回值。
最后,我们通过输入函数接受用户输入的两个正整数,并将结果打印出来。这样,我们就可以得到两个正整数的最小公倍数了。
### 回答3:
def find_lcm(num1, num2):
# 找出较大数
if num1 > num2:
greater = num1
smaller = num2
else:
greater = num2
smaller = num1
while True:
# 如果较大数能同时被较小数和自身整除,则最小公倍数为较大数
if (greater % smaller == 0):
lcm = greater
break
greater += 1
return lcm
# 测试
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
lcm = find_lcm(num1, num2)
print("最小公倍数为:", lcm)
阅读全文