Étonnamment, il n'y a que trois nombres où la somme des nombres au carré pour chaque chiffre correspond au nombre d'origine.
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
Cependant, il n'inclut pas «1 = 1 ** 4». La somme de ces nombres est «1634 + 8208 + 9474 = 19316».
Trouvez la somme des nombres afin que la somme des nombres obtenue en élevant chaque chiffre à la cinquième puissance corresponde au nombre d'origine. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2030
Exercice du poignet.
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