Project Euler 266(2)

プロジェクトオイラー
http://projecteuler.net/index.php?section=problems&id=266

Pythonだととにかくメモリを食う。400MB近く。大きな掛け算を避けるためlogを取るので、それを戻すためにどの素数を使ったのか整数で保持しておく必要がある。その実数と整数のタプルの配列がものすごくメモリを食う。こういうときは別々の配列にするのが常套手段だが、この問題ではソートをしなければならないので、自作のソートでも用意しない限り無理。自作のソートなら遅いだろうし。
Pythonなら掛け算してもいいんじゃないかと思って少し修正したら、返ってこなくなった。配列を生成するところを雑に書いていたのを思い出して、ジェネレータにしたら速くなった。しかもメモリも1/3くらいになった。
気をよくしてlogを取る方法もジェネレータにしたら、こっちのほうが遅い。なんだよおい。


メモリを節約する方法を思いついたけど、結局掛け算のほうが速い。