二、素数分解法
当n-m,n都比较大时,可以考虑素数分解法:
原理:使用小于等于n的素数表,逐个素数确定指数,最后把素数按照其指数乘幂,再相乘。
举例说明:
m=50,n=60;
逐个素数确定其指数:
2:在[m,n]范围内,21有倍数,22有倍数, 23有倍数,…, 25有倍数,26无倍数。确定2指数为5,幂32;
3:在[m,n]范围内,31有倍数,32有倍数, 33有倍数, 24无倍数。确定3指数为3,幂27;
5:在[m,n]范围内,51有倍数,52有倍数, 53无倍数。确定5指数为2,幂25
7:在[m,n]范围内,71有倍数,72无倍数。确定7指数为1,幂7
11:在[m,n]范围内,111有倍数,112无倍数。确定11指数为1,幂11
13:在[m,n]范围内,131有倍数,132无倍数。确定13指数为1,幂13
17:在[m,n]范围内,171有倍数,172无倍数。确定17指数为1,幂17
19:在[m,n]范围内,191有倍数,192无倍数。确定19指数为1,幂19
23:在[m,n]范围内,231有倍数,232无倍数。确定23指数为1,幂23
29:在[m,n]范围内,291有倍数,112无倍数。确定29指数为1,幂29
31:在[m,n]范围内,311无倍数。确定31指数为0,幂1
37:在[m,n]范围内,371无倍数。确定37指数为0,幂1
41:在[m,n]范围内,411无倍数。确定41指数为0,幂1
43:在[m,n]范围内,431无倍数。确定43指数为0,幂1
47:在[m,n]范围内,471无倍数。确定47指数为0,幂1
51:在[m,n]范围内,511有倍数,512无倍数。确定51指数为1,幂51
53:在[m,n]范围内,531有倍数,532无倍数。确定53指数为1,幂53
57:在[m,n]范围内,571有倍数,572无倍数。确定57指数为1,幂57
59:在[m,n]范围内,591有倍数,592无倍数。确定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。
此法当区间范围比较大时有时间优势,但需要存储有素数表。