题目描述 完全数:所有除了自身以外的因子之和等于本身的数,为完全数。例如 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点数解答]
相关提问
- [字节豆包] 题目描述 完全数:所有除了自身以外的因子之和等于本身的数,为完全数。例如 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++简答 回答篇幅:简单明了(159点数解答 | 2026-01-14 22:04:45)32
- [字节豆包] 题目描述 完全数:所有除了自身以外的因子之和等于本身的数,为完全数。例如 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++(337点数解答 | 2026-01-25 14:23:35)25
- [字节豆包] 题目描述 请从小到大输出 1 ~ n n 中所有个位为 5 5 或者个位为 8 8 的整数,每行 1 1 个。 输入格式 一行,一个正整数 n n。 输出格式 若干行,每行一个正整数,即 1 ~ n n 中所有满足条件的数。 input1 复制 20 output1 复制 5 8 15 18 input2 复制 30 output2 复制 5 8 15 18 25 28 数据规模与约定 对于 100 % 100% 的数据, 1 < n ≤ 10000 1<n≤10000。 语言: *********101112131415 在线(439点数解答 | 2025-07-20 15:05:34)230
- [字节豆包] 题目描述 请从小到大输出 1 ~ n n 中所有个位为 5 5 或者个位为 8 8 的整数,每行 1 1 个。 输入格式 一行,一个正整数 n n。 输出格式 若干行,每行一个正整数,即 1 ~ n n 中所有满足条件的数。 input1 复制 20 output1 复制 5 8 15 18 input2 复制 30 output2 复制 5 8 15 18 25 28 数据规模与约定 对于 100 % 100% 的数据, 1 < n ≤ 10000 1<n≤10000。 语言: *********101112131415 在线 c++ (230点数解答 | 2025-07-20 15:09:35)270
- [字节豆包] 题目描述 请从小到大输出 1 ~ n n 中所有个位为 5 5 或者个位为 8 8 的整数,每行 1 1 个。 输入格式 一行,一个正整数 n n。 输出格式 若干行,每行一个正整数,即 1 ~ n n 中所有满足条件的数。 input1 复制 20 output1 复制 5 8 15 18 input2 复制 30 output2 复制 5 8 15 18 25 28 数据规模与约定 对于 100 % 100% 的数据, 1 < n ≤ 10000 1<n≤10000。c++ (125点数解答 | 2025-10-25 20:11:42)64
- [字节豆包] 题目描述 数学中绝对值的概念是这样的:绝对值表示数轴上的点到原点的距离。既然是一段距离那么就不能是负数。 因此,正数和 0 0 的绝对值就是它们本身,而负数的绝对值是它们的相反数。( 5 5 的相反数是 − 5 −5, − 5 −5 的相反数是 5 5) 请你编写程序,输入一个数 a a,输出 a a 的绝对值。( a a 可能是小数) 输入格式 输入包括一行,包含一个数 a a。 输出格式 输出 a a 的绝对值。 input1 复制 2.5 output1 复制 2.5 input2 复制 -3.3 output2 复制 3.3 提示 如果用 0 0 减去一个数,就能得到这个数的相反数。 数据规模与约定 对于 100 % 100% 的数据, − 10000 < a < 10000 −10000<a<10000。c++(229点数解答 | 2025-07-20 15:22:18)287
- [字节豆包] 题目描述 数学中绝对值的概念是这样的:绝对值表示数轴上的点到原点的距离。既然是一段距离那么就不能是负数。 因此,正数和 0 0 的绝对值就是它们本身,而负数的绝对值是它们的相反数。( 5 5 的相反数是 − 5 −5, − 5 −5 的相反数是 5 5) 请你编写程序,输入一个数 a a,输出 a a 的绝对值。( a a 可能是小数) 输入格式 输入包括一行,包含一个数 a a。 输出格式 输出 a a 的绝对值。 input1 复制 2.5 output1 复制 2.5 input2 复制 -3.3 output2 复制 3.3 提示 如果用 0 0 减去一个数,就能得到这个数的相反数。 数据规模与约定 对于 100 % 100% 的数据, − 10000 < a < 10000 −10000<a<10000。c++(311点数解答 | 2025-10-25 20:10:16)84
- [字节豆包] 题目描述 给定一个正整数 x x,以及另外的 n n 个正整数,请你编写程序,计算 n n 个正整数中,小于 x x 的数的总和是多少? 输入格式 共两行, 第一行依次为 x x 和 n n,数之间以一个空格间隔, 第二行依次为 n n 个正整数,数之间以一个空格间隔。 输出格式 输出一个正整数,即 n n 个数中小于 x x 的数的和。 input1 复制 10 5 1 2 3 11 10 output1 复制 6 input2 复制 29 7 9 17 35 42 28 11 2 output2 复制 67 数据规模与约定 对于 100 % 100% 的数据: 1 ≤ x ≤ 10000 1≤x≤10000, 1 ≤ n ≤ 100 1≤n≤100, 1 ≤ 1≤ 每个正整数 ≤ 10000 ≤10000。(233点数解答 | 2025-08-02 21:35:03)263
- [字节豆包] 题目描述 给定一个正整数 x x,以及另外的 n n 个正整数,请你编写程序,计算 n n 个正整数中,小于 x x 的数的总和是多少? 输入格式 共两行, 第一行依次为 x x 和 n n,数之间以一个空格间隔, 第二行依次为 n n 个正整数,数之间以一个空格间隔。 输出格式 输出一个正整数,即 n n 个数中小于 x x 的数的和。 input1 复制 10 5 1 2 3 11 10 output1 复制 6 input2 复制 29 7 9 17 35 42 28 11 2 output2 复制 67 数据规模与约定 对于 100 % 100% 的数据: 1 ≤ x ≤ 10000 1≤x≤10000, 1 ≤ n ≤ 100 1≤n≤100, 1 ≤ 1≤ 每个正整数 ≤ 10000 ≤10000。 语言方向:C++(255点数解答 | 2025-08-02 21:35:27)182
- [字节豆包] 题目描述 给定 n n 个正整数,再给定一个正整数 x x,请你编写程序,计算 n n 个正整数中,小于 x x 的数的总和是多少? !!!注意输入顺序!!! 输入格式 共三行, 第一行为一个正整数 n n,表示正整数的个数, 第二行依次为 n n 个正整数,数之间以一个空格间隔, 第三行为一个正整数 x x 。 输出格式 输出一个正整数,即 n n 个数中小于 x x 的数的和。 input1 复制 5 1 2 3 11 10 10 output1 复制 6 input2 复制 7 9 17 35 42 28 11 2 29 output2 复制 67 数据规模与约定 对于 100 % 100% 的数据: 1 ≤ n ≤ 100 1≤n≤100, 1 ≤ 1≤ 每个正整数 ≤ 10000 ≤10000, 1 ≤ x ≤ 10000 1≤x≤10000。 语言方向:C++(341点数解答 | 2025-08-02 21:52:19)217
- [字节豆包] 题目描述 质数是指大于 1 1 的自然数中,除了 1 1 和自身之外没有其他约数的数。 例如 7 7 和 11 11 都是质数,而 6 6 不是质数,因为 6 6 除了约数 1 1 和 6 6 之外还有约数 2 2 和 3 3。 输入一个正整数,判断它是否为质数,如是质数则输出 Yes ,否则输出这个数第二小的约数(最小的约数是1)。 输入格式 一行,一个正整数 n n。 输出格式 如果 n n 是质数则输出 Yes,否则输出 n n 第二小的约数。 input1 复制 13 output1 复制 Yes input2 复制 2009 output2 复制 7 数据规模与约定 对于 100 % 100% 的数据, 2 ≤ n ≤ 10000 2≤n≤10000。c++(146点数解答 | 2025-10-25 19:29:01)76
- [字节豆包] c++题目描述 现有一个正整数 n n 请判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数 输入格式 一行,一个正整数 n n。 输出格式 判断 n n 是否为 3 , 5 , 7 3,5,7 的倍数,若是则输出对应的数字,否则不输出,注意输出时,如果有多个满足的数字,数字之间需要使用一个英文逗号间隔 input1 复制 9 output1 复制 3 input2 复制 70 output2 复制 5,7 input2 复制 210 output2 复制 3,5,7 数据规模与约定 对于 100 % 100% 的数据, 1 ≤ n ≤ 1000 1≤n≤1000。(409点数解答 | 2026-01-24 20:20:54)26