Project Euler Problem 30

7桁の数の各桁の5乗の和の最大値は
9^5 * 7 = 413343 (9999999のとき)であり
7桁にならないので、
6桁の数まで調べればいいらしい。

正確には、354294(=9^5 * 6)まで調べればよさそう

Python

def sum_of_fifth_power_of_digits(n):
    digits = map(int, str(n))
    fifth_power = lambda n: n ** 5
    return sum(map(fifth_power, digits))

def written_as_digit_fifth_power(n):
    return n == sum_of_fifth_power_of_digits(n)

print(sum(filter(written_as_digit_fifth_power, range(2, 1000000))))