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

C++ 计算区间内所有整数因数之和的高效实现

根据题目要求,计算从 m 到 n 的所有整数的因数之和。因数包括该数本身,例如 4 的因数有 1、2、4,和为 7。我们需要对每个数求因数和,再累加。 以下是完整的 C++ 代码实现,已填充到给定的框架中: ```cpp #include <iostream> using namespace std; int main() { int m, n; cin >> m >> n; long long totalSum = 0; // 使用 long long 避免溢出,因为最大 n=1000,每个数因数之和不超过 1000+500+...,总和不超 int 范围,但保险起见用 long long for (int i = m; i <= n; ++i) { int sum = 0; // 计算 i 的所有因数之和 for (int j = 1; j * j <= i; ++j) { if (i % j == 0) { sum += j; if (j != i / j) { sum += i / j; } } } totalSum += sum; } cout << totalSum << endl; return 0; } ``` **代码说明**: - 外层循环遍历 m 到 n 的每个整数 i。 - 内层循环从 1 到 sqrt(i) 寻找因数,若 j 是因数,则 i/j 也是因数(如果不同),这样能高效计算因数之和。 - 累加所有数的因数之和到 totalSum。 - 输出结果。 **示例**: 输入:`2 4` - 2 的因数:1+2=3 - 3 的因数:1+3=4 - 4 的因数:1+2+4=7 - 总和:3+4+7=14 输出:`14` ######[AI问答 | 426点数解答 | 2026-08-22 21:48:42]

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