>>660
-- Haskell

fact :: Integer -> Integer
fact n = foldl1 (*) [1..n]

isPrime :: Integer -> Bool
isPrime x = (fact (x-1) + 1) `mod` x == 0

main = print $ filter isPrime [2..30]