用函数判断一个正整数是不是“快乐数”。
对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程,如果数字变成了1,这个数就是快乐数,如果无限循环始终变不到1,这个数就不是快乐数。
def is_happy(num):
"""
判断一个数是否为快乐数
:param num: 正整数
:return: 快乐数返回True,否则返回False
"""
occured_num=set()
while num not in occured_num:
occured_num.add(num)
total=0
while num>0:
total+=(num%10)**2
num//=10
if total==1:
return True
num=total
return False
if __name__=='__main__':
for i in range(1000,1101): #判断1000到1100之间的快乐数
if is_happy(i):
print(i)