【发布时间】:2016-09-14 23:35:16
【问题描述】:
令人惊讶的是,只有三个数字可以写成 数字的四次方之和:
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因为 1 = 1^4 不是总和,所以不包括在内。
这些数字的总和是 1634 + 8208 + 9474 = 19316。
找出所有可以写成总和的数字的总和 数字的五次方。
这是我的代码:
summ = 0
digit_sum = 0
i = 0
while i < 1000000:
j = list(str(i))
for x in j:
digit = int(x) ** 5
digit_sum += digit
if digit_sum == i:
summ += i
print(i)
else:
digit_sum = 0
i += 1
print(summ)
谁能知道为什么我错过了应该是正确答案之一的值 4151?
【问题讨论】:
-
我建议使用调试器或在您的代码中添加
print语句来弄清楚它在做什么。您可以添加一个if语句以仅在循环到达 4151 时打印。
标签: python loops sum project digit