Project Euler 100

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


Pell方程式に帰着される。

pells x = (f x):[ f y | y <- pells x ] where
            f (a,b) = (a * 3 + b * 4, a * 2 + b * 3)
solutions = [ (div (b + 1) 2, div (a + 1) 2) | (a,b) <- pells (1,1) ]

limit = 10^12
main = print (head [ fst x | x <- solutions, snd x > limit ])

これで終わりにしたかったが、未だにHaskellが思うように書けないので、しばらくしたら再開するかも。