【问题描述】编写函数,功能是:判断一个整数是否是完数。完数,就是该数的所有真因子(即除了自身以外的约数)之和等于其本身。例如:6的因子是1,2,3,而6=1+2+3,则6是完数。
时间: 2024-11-27 17:15:36 浏览: 7
C语言期末经典程序填空题
在Python中,可以编写一个名为`is_perfect_number`的函数来判断一个整数是否为完数。下面是一个简单的实现方法:
```python
def is_perfect_number(n):
# 检查输入是否为正整数
if n <= 0 or not isinstance(n, int):
return False
# 完数需要大于1
if n == 1:
return False
# 初始化因子和为1(因为1总是因子)
divisors_sum = 1
# 遍历从2到n-1的数,如果能整除n,就加到divisors_sum中,并去除n本身的因子
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
divisors_sum += i
if i != (n // i): # 如果i不是n除以i的结果(即n不是i的平方),也要加上另一个因子
divisors_sum += n // i
# 如果divisors_sum等于n,说明n是完数,返回True;否则返回False
return divisors_sum == n
# 测试示例
print(is_perfect_number(6)) # 输出: True
print(is_perfect_number(28)) # 输出: True
print(is_perfect_number(27)) # 输出: False
```
阅读全文