编写一个判断完数的函数。判断一个数是否是完数,完数是指一个数恰好等于它的因子之和,例如6=1+2+3,28 = 1+2+4+7+14。6和28都是完数 用Python
时间: 2024-10-24 13:17:48 浏览: 42
编写一个判断完数的Python函数,你可以创建一个名为`is_perfect_number`的函数,接受一个整数作为输入,然后计算并检查其所有因子(包括1和自身)的和。以下是这个函数的实现:
```python
def is_perfect_number(num):
# 如果数字小于等于1,它不是完数
if num <= 1:
return False
# 初始化因子和为1(1总是因子)
factor_sum = 1
# 遍历从2到num的每个数,如果num能被当前数整除,则它是因子
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
# 添加因子及其对称因子(例如对于因子i,还需要添加num/i)
factor_sum += i
if i != num // i: # 如果因子不是另一半,则再加一次另一半
factor_sum += num // i
# 判断因子和是否等于原数
if factor_sum == num:
return True
else:
return False
# 测试函数
print(is_perfect_number(6)) # 输出:True
print(is_perfect_number(28)) # 输出:True
print(is_perfect_number(49)) # 输出:False,因为49 = 1 + 7 + 49,并非所有因子都相加得到49
#
阅读全文