酷代码 AI
菜单

题目描述 可怜的小白鼠又被牛博士拿去做实验了。牛博士从实验中获得了 N个实验数据,牛博士发现些数据中最重要的是其中的素数。请你帮牛博士挑出其中的素数。 输入文件有多行,第一行为数值N。 接下来的N行,每行一个实验数据 输出 有多行数据,第一行为你找到的素数个数,接下来的每行是实验数据中的素数(按原顺序输出)。 样例 input1 复制 5 3 5 7 9 11 output1 复制 4 3 5 7 11 数据范围 对于 100 % 100% 的数据, 3 ≤ N ≤ 10 4 , 2 ≤ a i ≤ 10 4 3≤N≤10 4 ,2≤a i ​ ≤10 4。 C++

```cpp #include <iostream> using namespace std; // 判断一个数是否为素数的函数 bool isPrime(int num) { if (num < 2) return false; for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; } return true; } int main() { int N; cin >> N; int primeCount = 0; int primes[10000]; for (int i = 0; i < N; i++) { int num; cin >> num; if (isPrime(num)) { primes[primeCount] = num; primeCount++; } } // 输出素数的个数 cout << primeCount << endl; // 输出所有的素数 for (int i = 0; i < primeCount; i++) { cout << primes[i] << endl; } return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 判断素数时,循环的终止条件是`i * i <= num`,而不是`i < num`,这样可以减少不必要的计算。 2. 数组`primes`的大小要根据数据范围合理设置,避免数组越界。 3. 输入和输出的格式要严格按照题目要求,特别是换行符的使用。 [2026-02-01 20:29:23 | AI写代码神器 | 349点数解答]

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