Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
13
Task/Munchausen-numbers/Haskell/munchausen-numbers-1.hs
Normal file
13
Task/Munchausen-numbers/Haskell/munchausen-numbers-1.hs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Control.Monad (join)
|
||||
import Data.List (unfoldr)
|
||||
|
||||
isMunchausen :: Integer -> Bool
|
||||
isMunchausen =
|
||||
(==)
|
||||
<*> (sum . map (join (^)) . unfoldr digit)
|
||||
|
||||
digit 0 = Nothing
|
||||
digit n = Just (r, q) where (q, r) = n `divMod` 10
|
||||
|
||||
main :: IO ()
|
||||
main = print $ filter isMunchausen [1 .. 5000]
|
||||
9
Task/Munchausen-numbers/Haskell/munchausen-numbers-2.hs
Normal file
9
Task/Munchausen-numbers/Haskell/munchausen-numbers-2.hs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import Data.Char (digitToInt)
|
||||
|
||||
isMunchausen :: Int -> Bool
|
||||
isMunchausen =
|
||||
(==)
|
||||
<*> foldr ((+) . (id >>=) (^) . digitToInt) 0 . show
|
||||
|
||||
main :: IO ()
|
||||
main = print $ filter isMunchausen [1 .. 5000]
|
||||
21
Task/Munchausen-numbers/Haskell/munchausen-numbers-3.hs
Normal file
21
Task/Munchausen-numbers/Haskell/munchausen-numbers-3.hs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import Control.Monad (join)
|
||||
import Data.Bool (bool)
|
||||
import Data.List (unfoldr)
|
||||
import Data.Tuple (swap)
|
||||
|
||||
isMunchausen :: Integer -> Bool
|
||||
isMunchausen =
|
||||
(==)
|
||||
<*> ( foldr ((+) . join (^)) 0
|
||||
. unfoldr
|
||||
( ( flip bool Nothing
|
||||
. Just
|
||||
. swap
|
||||
. flip quotRem 10
|
||||
)
|
||||
<*> (0 ==)
|
||||
)
|
||||
)
|
||||
|
||||
main :: IO ()
|
||||
main = print $ filter isMunchausen [1 .. 5000]
|
||||
Loading…
Add table
Add a link
Reference in a new issue