跳到主要内容

Python 程序:查找最小公倍数

要理解这个示例,你需要了解以下Python编程主题的知识:

两个数的最小公倍数(L.C.M.)是能够被这两个给定数完美整除的最小正整数。

例如,12和14的L.C.M.是84。

计算LCM的程序

# Python程序:查找两个输入数字的L.C.M.
def compute_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

num1 = 54
num2 = 24

print("最小公倍数是", compute_lcm(num1, num2))

输出

最小公倍数是 216

注意: 要测试这个程序,请更改num1num2的值。

这个程序分别在num1num2中存储两个数。这些数被传递给compute_lcm()函数。该函数返回两个数的L.C.M。

在函数中,我们首先确定两个数中较大的一个,因为L.C.M.只能大于或等于最大的数。然后我们使用一个无限的while循环,从那个数开始向上迭代。

在每次迭代中,我们检查两个数是否都能够完美地整除我们的数。如果是,我们将该数存储为L.C.M.并退出循环。否则,数值增加1并继续循环。

上述程序运行较慢。我们可以通过使用两个数的乘积等于其最小公倍数和最大公约数的乘积这一事实来使其更高效。

Number1 * Number2 = L.C.M. * G.C.D.

这是一个实现此方法的Python程序。

使用GCD计算LCM的程序

# Python程序:查找两个输入数字的L.C.M.
# 这个函数计算GCD
def compute_gcd(x, y):

while(y):
x, y = y, x % y
return x

# 这个函数计算LCM
def compute_lcm(x, y):
lcm = (x*y)//compute_gcd(x,y)
return lcm

num1 = 54
num2 = 24

print("最小公倍数是", compute_lcm(num1, num2))

这个程序的输出与之前相同。我们有两个函数compute_gcd()compute_lcm()。计算LCM需要数字的G.C.D.

因此,compute_lcm()调用函数compute_gcd()来实现这一点。两个数的G.C.D.可以使用欧几里得算法高效计算。

点击此处了解更多关于在Python中计算G.C.D的方法