Python解决1到n之间所有数字因数总和问题
### 🍃 解题思路 本题需要计算1到`n`之间所有数字的因数总和。我们的思路是遍历1到`n`的每一个数字,找出每个数字的所有因数并求和,最后将所有数字的因数和累加起来。 ### 📦 代码实现 ```python n = int(input()) total = 0 # 遍历1到n的每一个数字 for i in range(1, n + 1): factor_sum = 0 # 找出当前数字i的所有因数并求和 for j in range(1, i + 1): if i % j == 0: factor_sum += j total += factor_sum print(total) ``` ### 📋 代码解释 1. **读入输入**:使用`input()`函数读取用户输入的整数`n`,并使用`int()`函数将其转换为整数类型。 2. **初始化总和变量**:初始化变量`total`为0,用于存储1到`n`之间所有数字的因数总和。 3. **遍历1到n的每一个数字**:使用`for`循环遍历从1到`n`的每一个数字`i`。 4. **计算当前数字的因数总和**:对于每个数字`i`,使用另一个`for`循环遍历从1到`i`的每一个数字`j`,如果`i`能被`j`整除(即`i % j == 0`),则`j`是`i`的因数,将其累加到`factor_sum`中。 5. **累加因数总和**:将每个数字的因数总和`factor_sum`累加到`total`中。 6. **输出结果**:使用`print()`函数输出最终的因数总和`total`。 ### 💡 开发建议 - **代码复用**:可以将计算一个数字的因数总和的逻辑封装成一个函数,这样可以提高代码的复用性。 - **性能优化**:当`n`较大时,当前的算法时间复杂度为$O(n^2)$,可以考虑优化算法,例如使用数学方法来减少不必要的计算。 ######[AI写代码神器 | 503点数解答 | 2026-08-01 20:48:57]
- Python 实现:根据甜度值为甜甜圈评定等级(字节豆包 | 243点数解答 | 2025-12-06 18:35:50)137
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)609
- 巧用筛法!计算 N 到 M 间数的最大质因数个数(DeepSeek | 245点数解答 | 2026-01-18 12:43:51)89
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)147
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)159
- 网站密码有效性检查:代码实现与详细解读(字节豆包 | 567点数解答 | 2025-11-26 20:44:53)126
- C3期末:精准求解 3 - 20 范围内数列第 k 项值及注意要点(字节豆包 | 242点数解答 | 2025-06-15 11:26:19)212
- C++求解:查找3 - 20项数列第k项值及注意要点(字节豆包 | 325点数解答 | 2025-06-15 11:27:11)245
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)555
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)546
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)398
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)411