为什么我的测试数据是对的,但是提交时不正确呢?
**
题目描述
我们定义,如果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;
}