用Python实现求1000以内的所有完数
时间: 2024-10-04 18:04:30 浏览: 50
在Python中,完数是指一个正整数除了自身以外,其因子之和正好等于它自身的数。以下是实现这个功能的一个简单例子:
```python
def sum_of_factors(n):
"""
计算一个数的所有因子之和
"""
total = 1
for i in range(2, int(n**0.5) + 1): # 只需检查到根号n即可
if n % i == 0:
total += i # 如果i是因子,将其加入总和
if i != n // i: # 如果i不是n的平方根,还要加上另一个因子
total += n // i
return total
def find_perfect_numbers(limit):
"""
寻找给定范围内所有的完美数
"""
perfect_numbers = []
for num in range(2, limit):
if sum_of_factors(num) == num: # 检查num是否是完美数
perfect_numbers.append(num)
return perfect_numbers
perfect_numbers_in_1000 = find_perfect_numbers(1000)
print("小于或等于1000的所有完美数是:", perfect_numbers_in_1000)
阅读全文