酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Python解决1到n之间所有数字因数总和问题

### 🍃解题思路 为了计算1到`n`之间所有数字的因数总和,我们可以使用两层循环。外层循环遍历从1到`n`的每个数字,内层循环找出每个数字的所有因数并求和,最后将每个数字的因数和累加起来。 ### 📝代码实现 ```python n = int(input()) total_sum = 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_sum += factor_sum print(total_sum) ``` ### 📌代码解释 1. **输入处理**:使用`input()`函数获取用户输入的整数`n`,并将其转换为整数类型。 2. **外层循环**:使用`for`循环遍历从1到`n`的每个数字`i`。 3. **内层循环**:对于每个数字`i`,使用`for`循环遍历从1到`i`的每个数字`j`,判断`j`是否为`i`的因数,如果是,则将其累加到`factor_sum`中。 4. **累加因数和**:将每个数字的因数和`factor_sum`累加到`total_sum`中。 5. **输出结果**:最后输出`total_sum`。 ### 🚀复杂度分析 - **时间复杂度**:$O(n^2)$,因为使用了两层嵌套循环。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ### 💡开发建议 - **代码优化**:可以使用数学方法优化算法,减少时间复杂度。例如,对于每个因数`i`,它会在`i`的倍数中被重复计算,可以通过反向思考,统计每个因数在1到`n`中出现的次数,从而将时间复杂度优化到$O(n)$。 - **错误处理**:可以添加输入验证,确保用户输入的是一个小于100的正整数。 ######[AI写代码神器 | 502点数解答 | 2026-04-25 19:07:17]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]