如果一个数恰好等于它的因子之和,这个数就称为“完数”。如6=1+2+ 3。请设计程序找出1000以内的所有完数。Python
时间: 2024-11-05 07:33:39 浏览: 16
Java 完数 Mooc
5星 · 资源好评率100%
要编写一个Python程序找出1000以内的所有完数,你可以采用遍历和条件判断的方式来实现。首先,你需要创建一个函数来计算一个数的所有因子之和,然后检查这个数是否等于其因子之和。以下是完成此任务的一个示例代码:
```python
def is_perfect_number(n):
if n < 1:
return False
factors_sum = 1 # 自然数1一定是每个正整数的因子之一
for i in range(2, int(n**0.5) + 1): # 只需考虑n的平方根范围内的因子,避免重复计算
if n % i == 0: # 检查i是否为n的因子
factors_sum += i # 加上因子
if i != n // i: # 如果i不是n/i(即如果n不是i的平方),则也加上n//i
factors_sum += n // i
# 判断n是否等于其因子之和
return factors_sum == n
# 找出1000以内的所有完数
perfect_numbers = [num for num in range(1, 1001) if is_perfect_number(num)]
print("1000以内的完数有:", perfect_numbers)
阅读全文