2015年5月12日 星期二

ProjectEuler #423


以前做法時間複雜度太高,不切實際,

必須思考好的演算法。



Prime counting function: http://en.wikipedia.org/wiki/Prime-counting_function

數論重要定理:pi(n) ~ n/log(n)

如果可以找到 O(n pi(n)) = O(n^2 / log(n)) 的演算法,

接著再來改進演算法就可以了(廢話)。



此外,Sieve of Eratosthenes 的時間複雜度是 O(n log log(n)),

不過 ProjectEuler 許多題目需要質數表,對某些解題者來說時間複雜度是 O(1)。


沒有留言:

張貼留言