Problem 132

http://projecteuler.net/index.php?section=problems&id=132
前と基本は同じ。
nがd桁で循環するなら
10^d=1 (mod n)
これを利用。

import Number hiding(powMod)
target = 10^9

powMod a n m | n < 3 = a^n `mod` m
             | otherwise = let (q,r) = divMod n 2
                               aq = powMod a q m
                           in aq*aq*a^r `mod` m

main = print.sum.take 40 $[p| p<-drop 2 primes,powMod 10 target p == 1]