某自然数除它本身之外的所有因子之和等于该数,则该数被称为完数。编写程序实现函数,输入上限n,请输出n以内的完数。
时间: 2024-02-12 20:09:37 浏览: 161
1000以内的完数(该数等于其因子之和).exe
以下是Python代码实现:
```
def perfect_number(n):
result = []
for i in range(1, n + 1):
sum = 0
for j in range(1, i):
if i % j == 0:
sum += j
if sum == i:
result.append(i)
return result
n = int(input("请输入上限n的值:"))
print(n, "以内的完数为:", perfect_number(n))
```
程序首先定义了一个求完数的函数perfect_number,在函数中利用两层循环遍历1至n的所有自然数,累加它的因子并判断是否等于该数,如果等于则将该数添加到结果列表中。最后返回结果列表。
然后从键盘输入上限n的值,并调用perfect_number函数求n以内的完数,最后输出结果。
测试样例:
输入:n=10000
输出:10000以内的完数为:[6, 28, 496, 8128]
测试样例:
输入:n=500
输出:500以内的完数为:[6, 28]
阅读全文