python 定义函数,输入任意两个整数,返回这两个整数的最小公倍数。老师写的看不太懂求解!

forinrange后面的括号里的不理解,求解。或者你们还有更容易懂的方法么。... for in range 后面的括号里的不理解,求解。
或者你们还有更容易懂的方法么。
展开
 我来答
帐号已注销
2020-11-24 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:168万
展开全部

最小公倍数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个数中所含素因子的最高次方之间的乘积。

参考资料来源:百度百科-最小公倍数

江心欢888
推荐于2018-04-06 · TA获得超过258个赞
知道答主
回答量:27
采纳率:0%
帮助的人:26.7万
展开全部
最小公倍数m一定满足x+1<=m<=x*y,在这个范围内从x*y到x+1进行搜索,-1表示步长。最后出现的那个肯定是最下公倍数。
追问
为什么要x+1
追答
哦。我写错了。应该是x<=m<=x*y。而不是x+1。
在range(a,b,c)中,b是取不到的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
学派
2014-03-18 · TA获得超过446个赞
知道小有建树答主
回答量:465
采纳率:100%
帮助的人:260万
展开全部
第二个参数为边界范围,不加1,x也被执行到了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式