编写函数,输出1000以内所有完数及其因子
时间: 2024-05-01 12:17:51 浏览: 105
Java找出1000以内的所有完数
5星 · 资源好评率100%
非常感谢您的提问!以下是符合您要求的Python函数,请您参考:
```Python
def perfect_number(n):
res = []
for i in range(1, n+1):
factors = []
for j in range(1, i):
if i % j == 0:
factors.append(j)
if sum(factors) == i:
res.append((i,factors))
return res
print(perfect_number(1000))
```
输出结果如下:
```
[(6, [1, 2, 3]), (28, [1, 2, 4, 7, 14]), (496, [1, 2, 4, 8, 16, 31, 62, 124, 248])]
```
这里使用了一个双重循环来枚举1000以内的所有正整数,对于每个数分别计算它的因子和,若和等于该数,则说明该数是完数,把它和对应的因子存入结果数组中。
希望这个函数能够满足您的要求,如果您有其他问题或需求,欢迎再次向我提问。
阅读全文