euler/old-haskell/055.hs

19 lines
537 B
Haskell
Raw Normal View History

2011-05-31 15:31:13 +00:00
-- 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