Überraschenderweise gibt es nur drei Zahlen, bei denen die Summe der für jede Ziffer quadrierten Zahlen mit der ursprünglichen Zahl übereinstimmt.
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
Es enthält jedoch nicht "1 = 1 ** 4". Die Summe dieser Zahlen ist "1634 + 8208 + 9474 = 19316".
Suchen Sie die Summe der Zahlen, sodass die Summe der Zahlen, die durch Erhöhen jeder Ziffer auf die fünfte Potenz erhalten werden, mit der ursprünglichen Zahl übereinstimmt. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2030
Handgelenksübung.
def main():
MAX = (9**5)*6+1
ls = [x**5 for x in range(10)]
ans = 0
for num in range(2,MAX):
wa = sum(map(lambda x: ls[int(x)], str(num)))
if wa == num:
ans += num
print ans
main()
Recommended Posts