對於 x > sqrt(n),至少有兩個數字除n得同一商
基於此,便可把原本的O(n)攤成『直接枚舉』O(sqrt(n)) + 『等差級數』O(sqrt(n))
--------(X15)
1: 0
--------(X7)
2: 1
--------(X5)
3: 0
--------(X3)
4: 3
5: 0
--------(X2)
6: 3
7: 1
--------(X1)
8: 7
9: 6
10: 5
11: 4
12: 3
13: 2
14: 1
15: 0
My code: http://codepad.org/QeDh2BXl
沒有留言:
張貼留言