输入一个正整数n(n<1000), 输出1到n之间的所有完数(包括n)。完数:二个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=1+2+3。
时间: 2024-05-07 10:23:36 浏览: 65
编程找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
5星 · 资源好评率100%
可以先写一个函数判断一个数是否为完数,然后在主程序中遍历1到n,对于每个数判断是否为完数即可。
以下是Python代码实现:
```python
def is_perfect_number(num):
factors = [1] # 1 一定是因子
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
factors.append(i)
if i != num // i: # 避免重复添加平方根
factors.append(num // i)
return sum(factors) == num
n = int(input("请输入一个正整数n:"))
for i in range(1, n + 1):
if is_perfect_number(i):
print(i)
```
输入一个正整数n,输出1到n之间的所有完数。例如,当n为100时,输出:
```
6
28
```
因为6和28都是完数。
阅读全文