五位数16807=7 ** 5 同时也是一个数的五次方。类似的,九位数 134217728=89,同时也是一个数的九次方。
有多少n位正整数同时也是某个数的n次方?
import math
# 10 ** j > i ** j -> i < 10
# i ** j >= 10 ** (j - 1) -> log10(i) * j >= j - 1 -> j <= 1 / (1 - log10(i))
n = 0
for i in range(1, 10):
n += int(1 / (1 - math.log10(i)))
print(n)