euler/055.hs
Yann Esposito (Yogsototh) 198b8d0fd3 Initial submit
2011-05-31 17:31:13 +02:00

18 lines
537 B
Haskell

-- num_reverse :: Num a -> Num a
num_reverse = read . reverse . show
-- num_palindrom :: Num a -> Bool
num_palindrom n = (show n) == (reverse $ show n)
-- lychrel :: Num a -> Num a -> Bool
lychrel 0 n = False
lychrel depth n = ( num_palindrom number ) || lychrel (depth - 1) number
where number = n + (num_reverse n)
-- nblychrel :: Num a -> Num a
nblychrel n = length $ filter (not . lychrel 50) [1..n]
main = do
putStrLn $ show ( lychrel 50 196 )
putStrLn $ show ( nblychrel n )
where n = 10000