# Euler problem 30

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^48208 = 8^4 + 2^4 + 0^4 + 8^49474 = 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.

——————————

`sum_5th_powers n = sum \$ map ((^5) . digitToInt) (show n)`

` -- sum_5th_powers 999999 == 354294-- sum_5th_powers 9999999 == 413343 `

For a number having more than 6 digits, the fifth powers of its digits cannot be the number itself. So we should consider only numbers with less than 7 digits.

`-- sum_5th_powers ______ <= 354294`

For the numbers not greater than 354294, the number whose sum_5th_powers can represent the largest number is …

When 2 –> 1, in exchange for 4 –> 9, we earn — we get 354199;
When 4 –> 3, in exchange for 1 –> 9, we earn — we get 353999;
When 5 –> 4, in exchange for 3 –> 9, we earn — we get 349999;
When 3 –> 2, in exchange for 4 –> 9, we earn — we get 299999.

So the maximum number sum_5th_powers can represent is …

`-- sum_5th_powers 299999 == 295277`

``` -- 295277-- 199999 -- sum_5th_powers 199999 == 295246 ```

`p30 = [n | n <- [10..m], n == sum_5th_powers n]    where m = 295246`

——————————

— Me@2015-07-06 08:42:07 PM