求连续区间上所有整数的最小公倍数的方法

求连续区间上所有整数的最小公倍数的方法

问题:求m,m+1,m+2,m+3,...,n的最小公倍数

(等待更新)

一、递推法

假定两个数的公倍数 g(a,b)
三个数的公倍数 g(g(a,b),c)

二、素数分解法
 
当n-m,n都比较大时,可以考虑素数分解法:
原理:使用小于等于n的素数表,逐个素数确定指数,最后把素数按照其指数乘幂,再相乘。
举例说明:
m=50,n=60;
逐个素数确定其指数:
2:在[m,n]范围内,2 1有倍数,2 2有倍数, 2 3有倍数,…, 2 5有倍数,2 6无倍数。确定2指数为5,幂32;
3:在[m,n]范围内,3 1有倍数,3 2有倍数, 3 3有倍数, 2 4无倍数。确定3指数为3,幂27;
5:在[m,n]范围内,5 1有倍数,5 2有倍数, 5 3无倍数。确定5指数为2,幂25
7:在[m,n]范围内,7 1有倍数,7 2无倍数。确定7指数为1,幂7
11:在[m,n]范围内,11 1有倍数,11 2无倍数。确定11指数为1,幂11
13:在[m,n]范围内,13 1有倍数,13 2无倍数。确定13指数为1,幂13
17:在[m,n]范围内,17 1有倍数,17 2无倍数。确定17指数为1,幂17
19:在[m,n]范围内,19 1有倍数,19 2无倍数。确定19指数为1,幂19
23:在[m,n]范围内,23 1有倍数,23 2无倍数。确定23指数为1,幂23
29:在[m,n]范围内,29 1有倍数,11 2无倍数。确定29指数为1,幂29
31:在[m,n]范围内,31 1无倍数。确定31指数为0,幂1
37:在[m,n]范围内,37 1无倍数。确定37指数为0,幂1
41:在[m,n]范围内,41 1无倍数。确定41指数为0,幂1
43:在[m,n]范围内,43 1无倍数。确定43指数为0,幂1
47:在[m,n]范围内,47 1无倍数。确定47指数为0,幂1
51:在[m,n]范围内,51 1有倍数,51 2无倍数。确定51指数为1,幂51
53:在[m,n]范围内,53 1有倍数,53 2无倍数。确定53指数为1,幂53
57:在[m,n]范围内,57 1有倍数,57 2无倍数。确定57指数为1,幂57
59:在[m,n]范围内,59 1有倍数,59 2无倍数。确定59指数为1,幂59
把所有的幂进行乘积就是结果。
结果为:
50。51。52。53。54。55。56。57。58。59。60的最小公倍数是
32*27*25*7*11*13*17*19*23*29*1*1*1*1*1*51*53*57*59。
此法当区间范围比较大时有时间优势,但需要存储有素数表。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值