Problem: http://projecteuler.net/problem=461
Code: https://gist.github.com/anonymous/967924f40bb3345d466f
我的算法大概是
1. 找出最大的 k, 使 f_n(k) 不超过 pi (depend on n)
2. 造 dictionary f,使 f = f_n(k)|k=0,..,l
3. 造 two sum dictionary d, 过程中如果碰到两个的和 >= pi 就丢掉
4. lst = list(d) 抓出来 sort
5. 前半 lst 的每一个元素和pi的差做 binary search & 找 minimal value
n = 200 的话没什么问题
但是 n = 10000 实在是太大了
会在 line 31~33 出现 MemoryError
请问要怎么解决这种问题?