4. 求1-10000内的所有完美数,所谓完美数是指,这个数的所有真因子(即出来自身的所有因子)的和恰好等于它本身。例如:6(6=1+2+3)和28(28=1+2+4+7+14)就是完美数。python
时间: 2024-10-22 11:30:22 浏览: 18
直线阵和圆阵数字波束形成MatlAB程序.zip
在Python中,我们可以编写一个函数来找出1到10000范围内的所有完美数。首先需要创建一个辅助函数来计算一个数的真因子之和,然后遍历目标区间,检查每个数是否满足完美数的条件。以下是实现这一功能的一个简单示例:
```python
def is_perfect_number(n):
if n < 1:
return False
sum_of_divisors = 1
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
sum_of_divisors += i
if i != n // i: # 如果n不是i的平方,还要加上另一个因子
sum_of_divisors += n // i
return sum_of_divisors == n
perfect_numbers = [num for num in range(1, 10001) if is_perfect_number(num)]
print("1到10000之间的完美数有:", perfect_numbers)
阅读全文