某自然数除它本身以外的所有因子之和等于该数,这个数就称为“完数”。例如,6的因子为1,2,3,6=1+2+3,因此6是一个完数。编写程序找出1000之内的所有完数。
时间: 2024-09-26 19:15:01 浏览: 32
Java 完数 Mooc
5星 · 资源好评率100%
要编写一个程序找到1000以内的所有完数,我们可以遍历这个范围内的每一个数,检查它的因子之和是否等于它自身。以下是使用Python编写的示例代码:
```python
def is_perfect_number(num):
factors_sum = 1
for i in range(2, num): # 从2开始遍历,因为1不是因子
if num % i == 0: # 如果i是num的因子
factors_sum += i # 将因子加到sum中
return factors_sum == num # 返回因子和是否等于num
perfect_numbers = []
for num in range(1, 1001): # 遍历1到1000
if is_perfect_number(num): # 如果当前数是完美数
perfect_numbers.append(num) # 添加到结果列表中
print("1000以内所有的完数有:", perfect_numbers)
```
这段代码定义了一个辅助函数`is_perfect_number`,用于检查一个数是否是完数。然后,我们创建了一个空列表`perfect_numbers`,遍历1到1000之间的每一个数,如果该数是完美数,则添加到列表中。最后打印出所有找到的完美数。
阅读全文