diff --git a/Haskell/p030.hs b/Haskell/p030.hs new file mode 100644 index 0000000..6c50533 --- /dev/null +++ b/Haskell/p030.hs @@ -0,0 +1,24 @@ +-- Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: +-- +-- 1634 = 1^4 + 6^4 + 3^4 + 4^4 +-- 8208 = 8^4 + 2^4 + 0^4 + 8^4 +-- 9474 = 9^4 + 4^4 + 7^4 + 4^4 +-- +-- As 1 = 1^4 is not a sum it is not included. +-- +-- The sum of these numbers is 1634 + 8208 + 9474 = 19316. +-- +-- Find the sum of all the numbers that can be written as the sum of fifth powers of their digits. + +import Data.Char (digitToInt) + +sumNthPowerDigit :: Int -> Int -> Int +sumNthPowerDigit p n = sum [ x^p | x <- map digitToInt (show n) ] + +equalsSumNthPowerDigit :: Int -> Int -> Bool +equalsSumNthPowerDigit p n = n == sumNthPowerDigit p n + +main = do + let result = sum $ filter (equalsSumNthPowerDigit 5) [10..354295] + putStrLn $ "Project Euler, Problem 30\n" + ++ "Answer: " ++ show result