您的位置:首页 > 其它

Euler: Digit fifth powers

2015-03-12 19:54 316 查看
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^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.

Methods:

1. Write a function to judge whether a number can be writtern as sum of fifth powers of their digits.

2. Compute the possible range of the numbers. Assume the number have 7 digits, the maximum sum of fifth powers of 7 digits is 7 * (9^5) = 413343. It just has 6 digits. So the number cannot has more than 6 digits.

import math

def fifth(n):
sum = 0
n_str = str(n)
for i in n_str:
sum +=  pow(int(i), 5)
if sum == n:
print n
return True
else:
return False

def main():
count = 0
for i in range(2, 999999):
if fifth(i):
count += i
print "sum is ", str(count)
return

if __name__ == "__main__":
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: