euler/e030.py
Correl Roush 12c5dd7875 Documented each exercise, and placed executable code in a main() function.
git-svn-id: file:///srv/svn/euler@63 e5f4c3ec-3c0c-11df-b522-21efaa4426b5
2010-05-04 18:21:07 +00:00

33 lines
950 B
Python

"""Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.
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 = 14 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.
"""
def power_sums(n):
numbers = []
i = 9
while i <= 10**(n+1):
i = i + 1
if int(max(str(i)))**n > i:
continue
s = sum([int(c)**n for c in str(i)])
if i == s:
numbers.append(i)
return numbers
def main():
p = power_sums(4)
print 'power_sums(4)', p, sum(p)
p = power_sums(5)
print 'power_sums(5)', p, sum(p)
if __name__ == '__main__':
main()