import Control.Applicative import Data.List import Data.Char getInt :: IO Integer getInt = (\a -> read a :: Integer) <$> getLine getIntArray :: IO [Integer] getIntArray = ((map (\a -> read a :: Integer)) . words) <$> getLine getStrArray :: Integer -> IO [String] getStrArray 0 = return [] :: IO [String] getStrArray n = (:) <$> getLine <*> (getStrArray (n - 1)) getPrime :: Integer -> [Integer] getPrime 1 = [] getPrime 2 = [2] getPrime n = let primes = getPrime $ n - 1 in if all (\a -> mod n a /= 0) primes then (n : primes) else primes main = do print =<< ((foldr (+) 0) . getPrime) <$> getInt