二、素数分解法
当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。
此法当区间范围比较大时有时间优势,但需要存储有素数表。