squres_num=[i**2 for i in range(int(math.sqrt(n)+1)]
dp=[float('inf')]*(n+1)]
dp[0]=0
for i in range(n+1):
for s in squres_num:
if i<s:
break
res[i]=min(res[i],res[i-s]+1)
return res[-1]
squres_num=[i**2 for i in range(int(math.sqrt(n)+1)]
dp=[float('inf')]*(n+1)]
dp[0]=0
for i in range(n+1):
for s in squres_num:
if i<s:
break
res[i]=min(res[i],res[i-s]+1)
return res[-1]