うーん。さっぱり分からん。
20分悩んで降参。
なるほど。
a^2 <= N となるから a <= (N)^(0.5)が言える。。か。
想定される最大値 N と、想定される最小値 a^b(=a^2) の関係(不等式)から
a の条件を導き出している。
Unexpressed.py
N = int(input())
lis = []
for a in range(2,1+10**5):
b = 2
while True:
if a**b <= N:
lis.append(a**b)
b += 1
else:
break
lis = set(lis) #二重の値を省く処理
print(N - len(lis))
勉強になりました。m(_ _)m