#brute solution
squares = []
for i in range(2, 101):
for j in range(2,101):
squares.append(i**j)
print len(list(set(squares)))
print squares[:10]
def sum5digits(n):
return sum([int(dig)**5 for dig in str(n)])
def sum4digits(n):
return sum([int(dig)**4 for dig in str(n)])
cands1 = []
for i in range(1000,9999):
if sum4digits(i) == i:
cands1.append(i)
print cands1
def solve30():
cands = []
for i in range(2,355000):
if sum5digits(i) == i:
cands.append(i)
return sum(cands)
print solve30()