Python 判断一个数是否是完全数
完全数是指一个数等于它的所有真因子(除了自身以外的因子)之和。例如,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} 不是一个完全数")
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} 不是一个完全数")
代码解析:
is_perfect_number(n)
函数用于判断一个数n
是否是完全数。- 首先检查
n
是否小于 2,因为小于 2 的数不可能是完全数。 sum_of_factors
初始化为 1,因为 1 是所有正整数的因子。- 使用一个
for
循环从 2 遍历到n
的平方根,检查每个数是否是n
的因子。 - 如果
i
是n
的因子,则将i
和n // i
加到sum_of_factors
中。 - 最后,如果
sum_of_factors
等于n
,则n
是一个完全数,返回True
,否则返回False
。
输出结果:
28 是一个完全数
点我分享笔记