酷代码 AI
菜单

题目描述 完全数:所有除了自身以外的因子之和等于本身的数,为完全数。例如 6 有 1,2,3 三个除了自身以外的因子,并且满足 1+2+3=6,因此 6 是完全数 请你编写程序,输入一个正整数 n n ,找出 2 2 到 n n 之间的所有完全数。 输入格式 一行,一个正整数 n n。 输出格式 每行一个正整数,从小到大依次输出符合要求的完全数 。 input1 复制 7 output1 复制 6 input2 复制 30 output2 复制 6 28 数据规模与约定 对于 100 % 100% 的数据, 2 ≤ n ≤ 10000 2≤n≤10000。 C++

```cpp #include <iostream> using namespace std; // 函数用于判断一个数是否为完全数 bool isPerfect(int num) { int sum = 0; // 遍历从 1 到 num - 1 的所有数,找出 num 的因子并求和 for (int i = 1; i < num; i++) { if (num % i == 0) { sum += i; } } // 判断因子之和是否等于该数本身 return sum == num; } int main() { int n; cin >> n; // 遍历从 2 到 n 的所有数 for (int i = 2; i <= n; i++) { // 调用 isPerfect 函数判断是否为完全数 if (isPerfect(i)) { cout << i << endl; } } return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 在判断因子时,循环范围要控制在小于该数本身,避免将该数自身也算作因子。 2. 对于输入的边界情况,要确保程序能正确处理最小输入值 2 和最大输入值 10000。 3. 注意在函数中变量的初始化,如 `isPerfect` 函数里的 `sum` 要初始化为 0,否则可能会得到错误结果。 [2026-01-25 14:23:35 | AI写代码神器 | 337点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多