以前做法時間複雜度太高,不切實際,
必須思考好的演算法。
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)。
沒有留言:
張貼留言