Python 判断数字是否为"快乐数"

Document 对象参考手册 Python3 实例

快乐数是指一个数字,将其每个位上的数字平方后相加,得到一个新的数字,重复这个过程直到最后结果为1,或者进入一个不包含1的循环。如果最终结果为1,则这个数字就是快乐数。

实例

def is_happy_number(n):
    def get_next(number):
        return sum(int(char) ** 2 for char in str(number))

    seen = set()
    while n != 1 and n not in seen:
        seen.add(n)
        n = get_next(n)

    return n == 1

# 测试
print(is_happy_number(19))  # 输出 True
print(is_happy_number(20))  # 输出 False

代码解析:

  1. is_happy_number 函数用于判断一个数字是否为快乐数。
  2. get_next 函数用于计算一个数字的每个位上的数字平方和。
  3. seen 集合用于记录已经出现过的数字,以防止进入无限循环。
  4. while 循环中,不断计算下一个数字,直到结果为1或者进入循环。
  5. 最后返回 n == 1,如果结果为1则返回 True,否则返回 False

输出结果:

True
False

Document 对象参考手册 Python3 实例