Python求n以内的所有完数,以字典形式显示
时间: 2023-06-01 08:04:33 浏览: 81
以下是一个Python程序,它将求解n以内的所有完数,并将它们以字典形式显示出来:
```python
def divisors_sum(n):
"""计算n的所有因数之和"""
sum = 0
for i in range(1, n):
if n % i == 0:
sum += i
return sum
def perfect_numbers(n):
"""求解n以内的所有完数"""
perfects = {}
for i in range(2, n + 1):
if divisors_sum(i) == i:
perfects[i] = True
return perfects
n = int(input("请输入一个正整数n:"))
perfects = perfect_numbers(n)
print("以下是{}以内的所有完数:".format(n))
for p in perfects:
print(p)
```
在这个程序中,我们首先定义了一个名为`divisors_sum`的函数,它用于计算一个正整数的所有因数之和。接下来,我们定义了一个名为`perfect_numbers`的函数,它用于求解n以内的所有完数,并将它们保存在一个字典中。最后,我们从用户处获取了一个正整数n,并调用`perfect_numbers`函数来求解所有的完数。最后,我们将完数逐个打印出来。
阅读全文