Python 判断一个数是否是完全数

Document 对象参考手册 Python3 实例

完全数是指一个数等于它的所有真因子(除了自身以外的因子)之和。例如,6 是一个完全数,因为它的真因子是 1, 2, 3,而 1 + 2 + 3 = 6。

下面是一个 Python 程序,用于判断一个数是否是完全数:

实例

def is_perfect_number(n):
    if n < 2:
        return False
    sum_of_factors = 1
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            sum_of_factors += i
            if i != n // i:
                sum_of_factors += n // i
    return sum_of_factors == n

# 测试
number = 28
if is_perfect_number(number):
    print(f"{number} 是一个完全数")
else:
    print(f"{number} 不是一个完全数")

代码解析:

  1. is_perfect_number(n) 函数用于判断一个数 n 是否是完全数。
  2. 首先检查 n 是否小于 2,因为小于 2 的数不可能是完全数。
  3. sum_of_factors 初始化为 1,因为 1 是所有正整数的因子。
  4. 使用一个 for 循环从 2 遍历到 n 的平方根,检查每个数是否是 n 的因子。
  5. 如果 in 的因子,则将 in // i 加到 sum_of_factors 中。
  6. 最后,如果 sum_of_factors 等于 n,则 n 是一个完全数,返回 True,否则返回 False

输出结果:

28 是一个完全数

Document 对象参考手册 Python3 实例