From 385ff00e1adf148e2f4193531b3f1a3209b36f66 Mon Sep 17 00:00:00 2001 From: Daniele Fucini Date: Wed, 20 Nov 2024 21:56:03 +0100 Subject: [PATCH] Add Haskell solution for Problem 30 --- Haskell/p030.hs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Haskell/p030.hs 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