输入正整数n,求n之类的所有完数,的程序
时间: 2023-05-23 11:05:23 浏览: 91
给出指定整数范围[a,b]内所有的完数的程序
5星 · 资源好评率100%
以下是Python代码实现:
```python
# 判断一个数是否是完数
def is_perfect_number(n):
factors = [1] # 1肯定是n的因数
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
factors.append(i)
if i != n // i: # 防止重复计算平方数
factors.append(n // i)
return sum(factors) == n
# 输入正整数n
n = int(input("请输入正整数n:"))
# 输出n之内的所有完数
for i in range(1, n+1):
if is_perfect_number(i):
print(i)
```
代码思路:
首先编写一个判断一个数是否是完数的函数 `is_perfect_number`,该函数通过求出某个数的因子来判断是否是完数。然后在输入一个正整数n后,依次判断1到n之间的每个数是否是完数,如果是则输出。
阅读全文