Munchausen numbers: Difference between revisions

m
Line 1,310:
 
=={{header|Haskell}}==
<lang haskell>import DataControl.ListMonad (unfoldrjoin)
import Data.List (unfoldr)
 
isMunchausen :: Integer -> Bool
isMunchausen =
isMunchausen n = (n ==) $ sum $ map (\x -> x^x) $ unfoldr digit n where
(==)
digit 0 = Nothing
digit n = Just<*> (r,q)sum where. map (q,rjoin (^)) =. nunfoldr `divMod` 10digit)
 
digit 0 = Nothing
digit n = Just (r, q) where (q, r) = n `divMod` 10
 
main :: IO ()
main = print $ filter isMunchausen [1 .. 5000]</lang>
{{out}}
<pre>[1,3435]</pre>
9,659

edits