键盘上输入N,编程序找出N之内的所有完数。
时间: 2023-08-21 07:01:37 浏览: 61
以下是 Python 3 代码实现:
```python
def find_factors(n):
# 找出 n 的所有因子
factors = []
for i in range(1, n):
if n % i == 0:
factors.append(i)
return factors
def is_perfect_number(n):
# 判断 n 是否为完数
factors = find_factors(n)
if sum(factors) == n:
return True
else:
return False
n = int(input("请输入一个正整数:"))
perfect_numbers = []
for i in range(1, n+1):
if is_perfect_number(i):
perfect_numbers.append(i)
print(f"{n} 之内的所有完数为:{perfect_numbers}")
```
代码的实现思路如下:
1. 编写一个函数 `find_factors(n)`,用于找出一个整数 `n` 的所有因子(除了 `n` 自身);
2. 编写一个函数 `is_perfect_number(n)`,用于判断一个整数 `n` 是否为完数。如果 `n` 的所有因子之和等于 `n`,则 `n` 是一个完数;
3. 在主程序中,输入一个正整数 `n`;
4. 遍历 `1` 到 `n` 的所有整数,判断其是否为完数,将所有完数存入列表 `perfect_numbers` 中;
5. 输出结果。
注意,输入的数值 `n` 必须为正整数。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)