Python 最小公倍数算法
以下代码用于实现最小公倍数算法:
实例(Python 3.0+)
# Filename : test.py
# author by : www.runcodex.com
# 定义函数
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
# 获取用户输入
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
print( num1,"和", num2,"的最小公倍数为", lcm(num1, num2))
执行以上代码输出结果为:
输入第一个数字: 54 输入第二个数字: 24 54 和 24 的最小公倍数为 216
HaydnLiao
Hay***iao@163.com
按以下思路可减少循环次数:
1.当最大值为最小公倍数时,返回最大值;
2.当最大值不为最小公倍数时,最小公倍数为最大值的倍数。
实例:
HaydnLiao
Hay***iao@163.com
Joshua
cos***cosmos@163.com
参考方法:
Joshua
cos***cosmos@163.com
旅行的意义
101***7869@qq.com
利用最大公约数,最小公倍数等于两个数的乘积除以最大公约数:
旅行的意义
101***7869@qq.com
黄桃果捞
zhe***ao@126.com
可以借用前一个实例中求取最小公约数的代码来实现求解两个整数的最大公倍数,代码如下:
代码运行结果如下:
黄桃果捞
zhe***ao@126.com
星空中的鱼
357***689@qq.com
你这个实例的效率太慢了,这样写效率高些。
星空中的鱼
357***689@qq.com
gj
123***789@qq.com
使用 for 的方法:
gj
123***789@qq.com
桃之夭夭
956***900@qq.com
求两个数之间的最小公倍数相对简单,用两个数的乘积对两个之间的最大公约数求商即可:
桃之夭夭
956***900@qq.com
Alex
934***001@qq.com
使用 math 模块的 gcd():
输出结果为:
Alex
934***001@qq.com
慕容君少
shu***hang89@126.com
参考方法:
慕容君少
shu***hang89@126.com
面向天依编程
145***0673@qq.com
乘法解决:两个数分别取自己的乘积,直到相等。
除法解决:较大数取乘积,直到可被较小数整除时(反之亦可)
面向天依编程
145***0673@qq.com