求两个正整数的最小公倍数
时间: 2023-09-13 22:12:48 浏览: 161
求两个正整数a和b的最小公倍数(LCM)可以使用它们的最大公约数(GCD)来计算,因为它们的乘积等于它们的最大公约数和最小公倍数的积。因此,最小公倍数LCM(a,b) = (a*b) / GCD(a,b)。
可以使用欧几里得算法来计算最大公约数GCD(a,b),步骤如下:
1. 如果b等于0,则GCD(a,b)等于a。
2. 否则,GCD(a,b)等于GCD(b, a mod b)。
根据这个算法,可以写出求最小公倍数的代码:
```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)
```
其中,// 表示整除运算,即返回整数部分结果。
相关问题
编写程序,功能是求两个正整数的最小公倍数; 要求实现方法:先定义一个private函数 _gcd()求两个正整数的最大公约数,再定义public函数lcm()调用 _gcd()函数求两个正整数的最小公倍数; 调用函数lcm(),并将输入的两个正整数的最小公倍数输出。python
好的,下面是实现这个功能的 Python 代码:
```python
class LeastCommonMultiple:
def __init__(self):
pass
def _gcd(self, a, b):
if b == 0:
return a
else:
return self._gcd(b, a % b)
def lcm(self, a, b):
return a * b // self._gcd(a, b)
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
lcm_obj = LeastCommonMultiple()
result = lcm_obj.lcm(a, b)
print("最小公倍数为:", result)
```
这段代码定义了一个名为 `LeastCommonMultiple` 的类,其中包含两个方法:`_gcd` 和 `lcm`。其中,`_gcd` 是一个私有方法,用来求两个正整数的最大公约数;`lcm` 则是一个公有方法,用来调用 `_gcd` 方法求两个正整数的最小公倍数。
在主程序中,首先输入两个正整数,然后创建一个 `LeastCommonMultiple` 的对象 `lcm_obj`,调用其 `lcm` 方法计算输入的两个正整数的最小公倍数,最后将结果输出。
从键盘输入两个正整数,求这两个正整数的最小公倍数和最大公约数,并输出。 输入 输入包括一行。 两个以空格分开的正整数。 输出 两个整数的最小公倍数和最大公约数。
可以使用Python内置的math库中的gcd函数来求最大公约数,使用两个数的乘积除以最大公约数来求最小公倍数。
以下是代码实现:
```
import math
a, b = map(int, input().split())
# 求最大公约数
gcd = math.gcd(a, b)
# 求最小公倍数
lcm = a * b // gcd
print(lcm, gcd)
```
阅读全文