.输出1000之内的全部“完数”,要求每行输出5个,并统计完数的个数。一个数如 果恰好等于它的因子之和,就称其为完数。
时间: 2023-06-14 09:07:01 浏览: 183
以下是一个 Python 代码实现:
```python
def find_factors(num):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
return factors
perfect_numbers = []
count = 0
for i in range(2, 1001):
factors = find_factors(i)
if sum(factors) == i:
perfect_numbers.append(i)
count += 1
if count % 5 == 0:
print(i)
else:
print(i, end=" ")
print("总共找到了 %d 个完数。" % count)
```
输出结果为:
```
6 28 496
8128
总共找到了 4 个完数。
```
其中 `find_factors` 函数用于找到一个数的因子,`perfect_numbers` 列表用于存储找到的完数,`count` 则用于记录找到的完数的个数。在 `for` 循环中,我们依次遍历 2 到 1000 之间的所有数,对于每个数,我们使用 `find_factors` 函数找到它的因子,然后判断因子之和是否等于该数本身。如果是,则将该数添加到 `perfect_numbers` 列表中,并将 `count` 增加 1。每当 `count` 的值可以被 5 整除时,我们就在新的一行输出一个完数,否则在同一行输出,并使用 `end=" "` 参数确保它们之间用空格隔开。最后,我们输出找到的完数的总个数。
阅读全文