Project Euler 354(4)

http://projecteuler.net/index.php?section=problems&id=354

やっと一般化できた。一般化というのは450だけじゃなくて別の数でも解けるようにしたということ。といっても18でしか試していない。しかも6の倍数でしかも6の奇数倍のみ。

あと、2か所速くした。
必要な素数を求めるところは3倍くらい速くなった。かなり苦労した。ここは素因数分解の一意性を使って落ち着いて考えればそんなに難しくないはずなのに。
Pythonは二分探索が遅い。それも使いつつメモ化をしたらだいぶ速くなった。
これで19秒。まあまあかな。


フォーラムに上げておいた。