The 5-digit number, 16807=$7^5$, is also a fifth power. Similarly, the 9-digit number, 134217728=$8^9$, is a ninth power.
How many n-digit positive integers exist which are also an nth power?
def get_digit_count(n):
if n < 10:
return 1
c = 0
while n:
n //= 10
c += 1
return c
assert(get_digit_count(0) == 1)
assert(get_digit_count(1) == 1)
assert(get_digit_count(33) == 2)
assert(get_digit_count(100) == 3)
def get_n_digit_positive_integers(n):
r = []
i = 1
while True:
if get_digit_count(i ** n) == n:
r.append(i ** n)
if get_digit_count(i ** n) > n:
return r
i += 1
s = sum([len(get_n_digit_positive_integers(n)) for n in range(1, 1000)])
print(s)
assert(s == 49)