酷代码 AI
菜单

两个相差为4的素数称为素数组,例如3和7,13和17,等等。下面请你帮助小核桃找出所有两个数均不大于x的素数组。 输入: 一个整数x(x<=100),表示所有找到的素数组都要小于等于x的范围。 输出: 若干行,每行为一对素数组。所有素数组,按照第一个数字的大小,从小到大输出。 输入样例: 1: 19 输出样例: 1: 3 7 7 11 13 17 输入样例: 2: 30 输出样例: 2: 3 7 7 11 13 17 19 23 时间/内存: 1000MS/100MB 提示: 1不是素数 C++

```cpp #include <iostream> using namespace std; // 判断一个数是否为素数 bool isPrime(int num) { if (num <= 1) return false; for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; } return true; } int main() { int x; cin >> x; // 遍历可能的素数对 for (int i = 3; i <= x - 4; i++) { if (isPrime(i) && isPrime(i + 4)) { cout << i << " " << i + 4 << endl; } } return 0; } ``` 代码解释: 1. `isPrime` 函数用于判断一个数是否为素数。素数是大于1且只能被1和自身整除的正整数。该函数通过遍历从2到该数平方根的所有整数,检查是否存在能整除该数的因子。 2. 在 `main` 函数中,首先读取输入的整数 `x`。 3. 然后使用 `for` 循环遍历从3到 `x - 4` 的所有整数 `i`,对于每个 `i`,检查 `i` 和 `i + 4` 是否都为素数,如果是,则输出这对素数。 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 注意素数的定义,1不是素数,在判断素数时要排除小于等于1的数。 2. 循环范围的设定,避免越界访问。这里遍历到 `x - 4` 是为了确保 `i + 4` 不会超过 `x`。 3. 判断素数时,循环的终止条件使用 `i * i <= num` 可以减少不必要的计算,提高效率。 [2026-01-31 21:37:16 | AI写代码神器 | 440点数解答]

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