http://projecteuler.net/index.php?section=problems&id=94
Pell方程式に帰着される。
pells m n = (next m n):[ next p q | (p, q) <- pells m n ] where next m n = (m * 2 + n * 3, m + n * 2) limit = 10^9 main = print (sum (takeWhile (<= limit) [ 4 * m^2 | (m,_) <- pells 1 0 ]) + sum (takeWhile (<= limit) [ 2 * m^2 | (m,_) <- pells 1 1 ]))