以下の内容はhttps://inamori.hateblo.jp/entry/20100320/p2より取得しました。


Project Euler 87

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


素直に取りうる値のリストを作ってSetに入れて大きさを見る。

import Data.Set (fromList, size)

is_prime n = all (\p -> mod n p /= 0) (takeWhile (\p -> p * p <= n) primes)
primes = 2:[ n | n <- [3,5..], is_prime n ]

limit = 5 * 10^7
a = [ p + q + r | p <- takeWhile (<limit) (map (^2) primes),
                  q <- takeWhile (<limit-p) (map (^3) primes),
                  r <- takeWhile (<limit-p-q) (map (^4) primes) ]
main = print (size (fromList a))



以上の内容はhttps://inamori.hateblo.jp/entry/20100320/p2より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14