快乐数的判断---python

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

(1)每次将正整数替换为它每个位置上的数字的平方和。

(2)重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。

(3)如果可以变为 1,这个数就是快乐数。

# 第一步编写计算任意数的平方和的函数

def cal(n):
    result = 0
    while(n):
        result+=(n%10)**2
        n//=10
    return result

# 写一个死循环,一直判断计算后的数值n,
# 1.为1:快乐数
# 2.在集合里未出现:添加到集合里
# 3.在集合里出现:非快乐数

s=set()
while True:
    n=cal(n)
    if n==1:
        print("快乐数")
        break
    elif n in s:
        print("非快乐数")
        break
    else:
        s.add(n)

你可能感兴趣的:(python,python)