Project Euler 291(3)

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

Miller-Rabin法を実装してみた。これは確率的な素数判定法である。(そのうち説明を書くかも)
この方法と単純に素数で割っていく方法では、107くらいでは同じようなスピードだが、1015では2000倍くらい違う。もちろんメモリも食わない。
それでも、この問題を解くには2時間くらいかかりそうである。
これはPythonでだが、F#で書き直しても同じくらいかかった。C++で組もうとすると割り算の実装がネックになる。