1
0
Fork 0
projecteuler/63.hs

12 lines
322 B
Haskell
Raw Normal View History

2017-05-29 05:00:17 +00:00
digits :: Integer -> Integer
digits n = 1 + (floor . logBase 10 . fromIntegral $ n)
powerDigits :: Integer -> Integer -> Bool
powerDigits n p = digits (n ^ p) == p
powers = takeWhile (powerDigits 9) [1..]
count = sum $ map (\n -> sum $ map (\p -> if powerDigits n p then 1 else 0) powers) [1..9]
main = do print count