📅  最后修改于: 2020-09-20 16:35:46             🧑  作者: Mango
两个数字的最小公倍数(LCM)是可被两个给定数字完全整除的最小正整数。
例如,LCM为12和14为84。
# Python Program to find the L.C.M. of two input number
def compute_lcm(x, y):
# choose the greater number
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("The L.C.M. is", compute_lcm(num1, num2))
输出
The L.C.M. is 216
注意:要测试该程序,请更改num1
和num2
的值。
该程序分别在num1
和num2
存储两个数字。这些数字将传递给compute_lcm()
函数。该函数返回两个数字的LCM。
在函数,我们首先确定两个数字中的较大者,因为LCM只能大于或等于最大数字。然后,我们使用无限的while
循环从该数字开始。
在每次迭代中,我们检查两个数字是否完美地除以我们的数字。如果是这样,我们将数字存储为LCM并退出循环。否则,数字将增加1,然后循环继续。
上面的程序运行较慢。我们可以利用两个数的乘积等于这两个数的最小公倍数和最大公除数的乘积来提高效率。
Number1 * Number2 = L.C.M. * G.C.D.
这是一个实现此目的的Python程序。
# Python program to find the L.C.M. of two input number
# This function computes GCD
def compute_gcd(x, y):
while(y):
x, y = y, x % y
return x
# This function computes LCM
def compute_lcm(x, y):
lcm = (x*y)//compute_gcd(x,y)
return lcm
num1 = 54
num2 = 24
print("The L.C.M. is", compute_lcm(num1, num2))
该程序的输出与以前相同。我们有两个函数compute_gcd()
和compute_lcm()
。我们需要数字的GCD来计算其LCM
因此, compute_lcm()
调用函数 compute_gcd()
完成此操作。使用欧几里得算法可以有效地计算两个数字的GCD。
单击此处以了解有关在Python计算GCD的方法的更多信息。