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

C++实现找出不大于n的素数对个数

以下是使用 C++ 实现找出所有两个数均不大于 `n` 的素数对的个数的代码: ```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 count = 0; for (int i = 2; i <= n - 2; i++) { if (isPrime(i) && isPrime(i + 2)) { count++; } } cout << count << endl; return 0; } ``` ### 代码解释: 1. **`isPrime` 函数**:用于判断一个数是否为素数。如果一个数小于 2,则它不是素数;否则,从 2 开始到该数的平方根进行遍历,如果能被其中任何一个数整除,则不是素数,否则是素数。 2. **`main` 函数**: - 读取输入的整数 `n`。 - 初始化计数器 `count` 为 0。 - 遍历从 2 到 `n - 2` 的所有数,对于每个数 `i`,检查 `i` 和 `i + 2` 是否都是素数,如果是,则计数器 `count` 加 1。 - 输出计数器 `count` 的值。 ### 复杂度分析: - **时间复杂度**:$O(n\sqrt{n})$,其中 $n$ 是输入的整数。对于每个数,判断素数的时间复杂度为 $O(\sqrt{n})$,需要遍历 $n$ 个数,因此总的时间复杂度为 $O(n\sqrt{n})$。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 484点数解答 | 2026-06-13 19:12:04]

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