19 lines
537 B
Haskell
19 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
|