|
第5题:最小倍数 2520是最小的能够被1到10整除的数。 最小的能够被1到20整除的正数 - Sub problem5() '找出能被1-20整除的最小自然数(结果是232792560)
- n = 20
- arr = Array(2, 3, 5, 7, 11, 13, 17, 19)
- Set d = CreateObject("scripting.dictionary") '记录每个数分解各质因数的个数
- For Each x In arr '先把所有质数过一遍,次数计为1
- d(x) = 1
- Next
-
- For m = 4 To n
- If Not d.exists(m) Then '如果是合数
- nn = m
- For Each x In arr '分解质因数,得出各质因数的最大次数
- p = 0
- Do While nn \ x = nn / x
- p = p + 1
- nn = nn / x
- Loop
- If p > d(x) Then d(x) = p '把质因数的最大次数作为当前次数
- Next
- End If
- Next
-
- res = 1
- For Each x In arr
- res = res * x ^ d(x)
- Next
- Debug.Print res
- End Sub
复制代码
是多少?
|
|