linkProblem 30 - Digit fifth powers
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.
1linkdef digits_to_power(number, power):
2link total = 0
3link for n in str(number):
4link total += int(n)**power
6link if number == total:
7link return number
9link return 0
11linktotal = 0
12linkfor i in range(2, 295245):
13link total += digits_to_power(i, 5)
- We first create a function that gets the sum of the power of their digits. For simplicity's sake, we
just return the same number if it is true, else, we return 0.
- The real challenge of this problem is knowing the upper limit. Apparently, there is a formula to get it:
- We run a for loop of all the numbers between 2 and 295245 (because 1 is excluded as stated in the problem) and checking
if they are equal to sum of the 5th power of their digits.