题解
【入门】挛生素数
1 条题解
-
0
解题思路
挛生素数是指两个相差 2 的素数对,比如 3 和 5、5 和 7。
题目要求找出 2 到 N 之间所有的挛生素数对。
方法:
- 写一个判断素数的函数
- 从 2 到 N-2 逐个检查 a 和 a+2 是否都是素数
- 如果是就输出
参考代码
#include <iostream> using namespace std; bool isPrime(int x) { if (x < 2) return false; for (int i = 2; i * i <= x; i++) { if (x % i == 0) return false; } return true; } int main() { int n; cin >> n; for (int a = 2; a <= n - 2; a++) { if (isPrime(a) && isPrime(a + 2)) { cout << a << " " << a + 2 << endl; } } return 0; }复杂度分析
- 时间复杂度:O(N√N),N < 1000 可以轻松通过
- 空间复杂度:O(1)
- 1