class Solution(object):
def numSquares(self, n):
"""
:type n: int
:rtype: int
"""
count=0
res=[n]
while 0 not in res:
count+=1
res_=[]
for r in res:
num=int(math.sqrt(r))
for i in range(num):
mid=r-(i+1)*(i+1)
if mid>=0 :
res_.append(mid)
res_=list(set(res_))
res=res_[:]
return count