程序设计 -- 孪生素数

我们定义,如果 a 和 a + 2 都是素数(如 5 和 7 ),那么我们就称 a 和 a + 2 是一对孪生素数。请写一个程序找出 2 -N之间的所有孪生素数。
输入格式
一个整数N( 2 < N < 1000)。
输出格式
若干行,每行两个整数,即一对孪生素数。
输入样例
10
输出样例
3 5
5 7

#include <iostream>
#include <cmath>

bool isprime(int x)
{
    if (x < 2)
        return false;
    int n = static_cast<int>(std::sqrt(x));
    for (int i = 2; i <= n; i++)
        if (x % i == 0)
            return false;
    return true;
}

int main()
{
    int n;
    std::cin >> n;
    for (int i = 2; i <= n - 2; i++)
        if (isprime(i) && isprime(i + 2))
            std::cout << i << ' ' << i + 2 << '\n';
    return 0;
}


```c++
#include<iostream>
using namespace std;
bool prime(int n) {
    int i;
    for (i = 2; i <= sqrt(n); i++) {
        if ((n % i) == 0) 
            return false;
    }
    return true;
}
int main()
{
    int N; cin >> N;
    for (int i = 2; i < N; i++)
    {
        if (prime(i) ==1&& prime(i + 2) == 1)
            cout << i <<" "<< i + 2<<endl;
    }
}

```

#include<iostream>
bool is_prime(int n) 
{
    const int max = static_cast<int>(std::sqrt(n));
    for (int i = 2; i <= max; i++) 
    {
        if (n % i == 0)
            return false;
    }
    return true;
}
int main()
{
    int n;
    std::cin >> n;
    bool prime[1000];
    for (int i = 3; i <= n; ++i)
    {
        prime[i] = is_prime(i);
    }
    for (int i = 3; i < n - 1; ++i)
    {
        if (prime[i] && prime[i + 2])
            std::cout << i << ' ' << i + 2 << std::endl;
    }
    return 0;
}