Project Euler Problem 30

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 = 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.
# 寻找一些数,他们各位数的5次方相加等于自身,求这些数的和。
i = 2
sum1 = 0
while i < 360000:
    string = str(i)
    l = [(int(x))**5 for x in string]
    if i == sum(l):
        print(i)
        sum1 += i
    i += 1
print(sum1)

思路:如果这个数为7位数,它一定小于7*9!=413343,所以这样的数不会是7位数或更大
         如果这个数为6位数,它一定小于6*9!=354294,所以搜索上界就是它

结果:443839

猜你喜欢

转载自blog.csdn.net/wxinbeings/article/details/80273673