É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