1. 求“完全数”: 完全数(Perfect Number)是指一个数恰好等于它的所有真因子(即除了自身以外的因子)之和。例如,28是一个完全数,因为 1 + 2 + 4 + 7 + 14 = 28。编写一个函数,找出并打印所有小于10000的完全数。
时间: 2024-11-15 17:25:55 浏览: 3
Perfect-Numbers:确定一个正整数是否是一个完美数
5星 · 资源好评率100%
求解完全数的问题需要遍历一定范围内的数,对于每个数,计算它的所有真因子之和。如果这个和等于原数本身,那么该数就是完全数。以下是用Python编写的函数来寻找并打印小于10000的所有完全数:
```python
def find_perfect_numbers(n):
def is_divisor(num, divisor):
return num % divisor == 0
for num in range(1, n):
divisors_sum = 1 # 自身不算因子
for i in range(2, int(num ** 0.5) + 1): # 只需检查到num的平方根即可
if is_divisor(num, i):
divisors_sum += i
if is_divisor(num, num // i): # 如果还有另一个因子,添加它
divisors_sum += num // i
if divisors_sum == num:
print(num)
# 找出并打印小于10000的所有完全数
find_perfect_numbers(10000)
```
阅读全文