python编写一个函数,判断一个正整数是否为完数:如果一个数的除它自身以外的所有因数之和等于它自身,则它就是完数。主函数中找出1000以内的所有完数。pythonpython
时间: 2024-02-18 11:05:30 浏览: 87
python简单实例训练(21~30)
好的,以下是实现完数判断和查找的 Python 代码:
```python
def is_perfect_number(num):
factors_sum = sum([i for i in range(1, num) if num % i == 0])
return factors_sum == num
perfect_numbers = []
for n in range(1, 1000):
if is_perfect_number(n):
perfect_numbers.append(n)
print("1000以内的完数为:", perfect_numbers)
```
代码中,`is_perfect_number` 函数接受一个正整数作为参数,计算该数的除自身以外的因数之和,如果等于它本身,则返回 True,否则返回 False。主程序中,我们遍历 1 到 1000 的所有整数,对每个数调用 `is_perfect_number` 函数判断是否为完数,如果是,则将其加入 `perfect_numbers` 列表中。最后输出 `perfect_numbers` 即可。
阅读全文