介绍
在这个项目中,你将学习如何找出 1 到 1000 范围内的所有完全数。完全数是指一个正整数,它等于其所有真因子(即除了自身以外的因子)之和。
👀 预览
## 如果范围是 1 到 10,输出应该是:
完全数: 6 ## 6 = 1 + 2 + 3
🎯 任务
在这个项目中,你将学习:
- 如何实现
perfect_number函数,以找出给定范围内的所有完全数 - 如何测试
perfect_number函数并验证结果的正确性 - 如何优化和改进
perfect_number函数,以获得更好的性能和可读性
🏆 成果
完成这个项目后,你将能够:
- 理解完全数的概念及其数学性质
- 编写一个函数来找出指定范围内的所有完全数
- 测试和调试你的代码,以确保它能正确运行
- 优化你的代码,以提高效率和可读性
- 应用你的问题解决能力来提升你的编程能力
理解问题
在这一步中,你将了解完全数的概念以及项目的要求。
完全数是指一个正整数,它等于其所有真因子(即除了自身以外的因子)之和。例如,6 的因子是 1、2 和 3。由于 6 = 1 + 2 + 3,所以 6 是一个完全数。
这个项目的目标是:
- 完成
perfect_number.py中的perfect_number函数,以找出 1 到 1000 范围内的所有完全数。 - 打印出找到的所有完全数,每个数之间用空格隔开。
实现 perfect_number 函数
打开 perfect_number.py 文件并找到 perfect_number 函数。该函数负责找出 1 到 1000 范围内的所有完全数。
以下是提供的初始代码:
def perfect_number():
"""
找出 1 到 1000 范围内的所有完全数。
返回:
list: 一个包含在 1 到 1000 范围内找到的所有完全数的列表。
"""
result = []
for num in range(1, 1001):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
result.append(num)
return result
让我们逐步分析这段代码:
- 定义了
perfect_number函数,用于找出 1 到 1000 范围内的所有完全数。 - 初始化一个空列表
result,用于存储完全数。 - 函数遍历从 1 到 1000(包括 1000)的数字。
- 对于每个数字,函数找出它的因子(不包括数字本身)并将它们添加到
factors列表中。 - 如果因子之和等于该数字,则该数字被视为完全数并添加到
result列表中。 - 最后,函数返回包含所有找到的完全数的
result列表。
测试 perfect_number 函数
要测试 perfect_number 函数,请在 perfect_number.py 文件末尾添加以下代码:
if __name__ == "__main__":
result = perfect_number()
print("完全数:", " ".join(map(str, result)))
这段代码将调用 perfect_number 函数,并打印出找到的所有完全数,每个数之间用空格隔开。
保存 perfect_number.py 文件并运行脚本:
python perfect_number.py
输出应该是:
完全数: 6 28 496
这意味着 perfect_number 函数运行正确,并找到了 1 到 1000 范围内的完全数。
总结
恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。



