4. 某自然数除它本身以外的所有因子之和等于该数,这个数就称为“完数”。例如,6的因子为1,2,3,6=1+2+3,因此6是一个完数。编写程序找出1000之内的所有完数。
时间: 2024-09-26 22:13:56 浏览: 54
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身
5星 · 资源好评率100%
寻找1000以内的所有完数,我们可以编写一个简单的循环程序来检查每个数是否满足完数的条件。对于每一个数n,我们只需要找到它的所有因子(除了n自身),并将这些因子相加。如果和等于n,那么n就是一个完数。以下是用Python编写的示例代码:
```python
def find_perfect_numbers(n):
perfects = []
for num in range(2, n): # 从2开始,因为1不是合数,所以不考虑
factors_sum = sum(i for i in range(1, num) if num % i == 0)
if factors_sum == num:
perfects.append(num)
return perfects
perfect_numbers_1000 = find_perfect_numbers(1000)
print("1000以内的完数有:", perfect_numbers_1000)
```
在这个代码中,`find_perfect_numbers`函数会返回一个列表,包含1000以内所有的完数。
运行此代码后,你将看到1000以内所有的完数。
阅读全文