求1~N之间有哪些孪生素数

为什么我的测试数据是对的,但是提交时不正确呢?
**
题目描述
我们定义,如果a和a+2都是素数(如5和7),那么我们就称a和a+2是一对孪生素数。请写一个程序找出2-N之间的所有孪生素数。

输入
一个整数N( 2 < N < 1000 )。

输出
若干行,每行两个整数,即一对孪生素数。
**
#include <bits/stdc++.h>
using namespace std;

bool prime(int n){
if(n < 2) return false;
for(int 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) == true and prime(i + 2) == true) cout << i << " " << i + 2 << endl;
}
return 0;
}
这是求2~N之间有哪些孪生素数的
哪位大 佬帮忙看一下,谢谢

你这啥语言啊?
if(prime(i) == true and prime(i + 2) == true)
and是不是要改成 && 啊。
不正确到底是结果不正确,还是编译不正确呢?

我给你写了下,你试试可不可以。
另外,基本的语法要确认下哦, is_prime() == true,是可以的,但是最好用逻辑运算符


#include <bits/stdc++.h>
using namespace std;

int is_prime(int n)
{
    if(n <= 3)
        return n > 1;

    for(int i = 2; i * i <= n; i++)
       if(n%i == 0)
           return 0;

    return 1;
}

int main()
{
    int n;
    cin>>n;
    
    for(int i = 3; i <= n; i+=2) {
        if(is_prime(i) && is_prime(i+2)) {
            cout << i << " " << i + 2 << endl;
        }
    }
    
    return 0;
}