Munchausen numbers: Difference between revisions
Content added Content deleted
Line 1,310: | Line 1,310: | ||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<lang haskell>import |
<lang haskell>import Control.Monad (join) |
||
import Data.List (unfoldr) |
|||
isMunchausen :: Integer -> Bool |
isMunchausen :: Integer -> Bool |
||
isMunchausen = |
|||
isMunchausen n = (n ==) $ sum $ map (\x -> x^x) $ unfoldr digit n where |
|||
(==) |
|||
⚫ | |||
<*> (sum . map (join (^)) . unfoldr digit) |
|||
⚫ | |||
digit n = Just (r, q) where (q, r) = n `divMod` 10 |
|||
main :: IO () |
main :: IO () |
||
main = print $ filter isMunchausen [1..5000]</lang> |
main = print $ filter isMunchausen [1 .. 5000]</lang> |
||
{{out}} |
{{out}} |
||
<pre>[1,3435]</pre> |
<pre>[1,3435]</pre> |