python 定义函数,输入任意两个整数,返回这两个整数的最小公倍数。老师写的看不太懂求解!
3个回答
展开全部
最小公倍数m一定满足x+1<=m<=x*y,在这个范围内从x*y到x+1进行搜索,-1表示步长。最后出现的那个肯定是最下公倍数。
先求出两个正整数的质数乘积(单独一个函数)。参考输出,例:40返回值是{"2":3,"5":1}意思是2的3次方*5,就是合并,并且保留指数最大的就行。
def gcd(a, b): # 求最大公约数
x = a % b
while (x != 0):
a, b = b, x
x = a % b
return b
def lcm(a,b): # 求最小公倍数
return a*b//gcd(a,b)
扩展资料:
最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。
参考资料来源:百度百科-最小公倍数
展开全部
最小公倍数m一定满足x+1<=m<=x*y,在这个范围内从x*y到x+1进行搜索,-1表示步长。最后出现的那个肯定是最下公倍数。
追问
为什么要x+1
追答
哦。我写错了。应该是x<=m<=x*y。而不是x+1。
在range(a,b,c)中,b是取不到的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个参数为边界范围,不加1,x也被执行到了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询