这题略水啊
首先观察一下。
10 ^ x次方肯定是x + 1位的
所以底数肯定小于10的
那么我们就枚举1~9为底数
然后枚举幂级数就行了,直至不满足题目中的条件即可break
cnt = 0 for i in range(1, 10): e = 1 while True: if len(str(i**e)) != e: break e += 1 cnt += 1 print cnt