class Solution:
def isHappy(self, n: int) -> bool:
#记录中间结果
tmp_set=set()
while True:
sum=self.getSum(n)
#出现1,是快乐数
if sum == 1:
return True
#重复出现,说明已出现循环,肯定不是快乐数
if sum in tmp_set:
return False
else:
tmp_set.add(sum)
n=sum
def getSum(self,n:int)->int:
sum=0
while n:
#求平方和
sum+=(n%10)**2
#商取整,得单数
n=n//10
return sum