# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

# Euler 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 = 1^4$ 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.

pow = [d**5 for d in range(10)]
print(sum(k for k in range(2,10**6)
          if sum(pow[d] for d in map(int, str(k))) == k))

# **Explanation:** If the number $N$ has $d$ digits, then $10^{d-1} \le N < 10^d$
# and the sum of the fifth powers of the digits of $N$ is at most $9^5 d$.
# Therefore, if the sum of fifth powers of the digits of $N$ is equal to $N$,
# then $10^{d-1} \le 9^5 d$, which implies that $d \le 6$.
# Hence we need only check $N \le 10^6$.
#

StarcoderdataJupyterScriptsDedupFiltered