wvogel日記

自分用の技術備忘録が多めです.

メロンから、2011は、157から211までの連続する素数の和だよ、と聞いたのでHaskellで確かめてみた

main = print $ sum $ filter prime [157,159..211]

prime :: Int -> Bool
prime n = prime' n ( (n+1) `div` 2 )

prime' :: Int -> Int -> Bool
prime' n 1 = True
prime' n x | n `mod` x == 0 = False
           | otherwise      = prime' n ( x-1 )

実行結果は2011。
見事です