1099 性感素数 测试点3
易错点
if((is_nature(n)==1&&is_nature(n+6)==1)||(is_nature(n)==1&&is_nature(n-6)==1)){
此处判断不能只考虑(n+6)为素数的情况,而忽略了(n-6)为素数的情况
代码
#include <iostream>
#include <cstdio>
using namespace std;
bool is_nature(int a){
if(a<2){
return 0;
}
else if(a==2){
return 1;
}
if(a%2==0&&a!=2){
return 0;
}
for(int i=3;i*i<=a;i+=2){
if(a%i==0){
return 0;
}
}
return 1;
}
int main()
{
int n;
cin>>n;
if(is_nature(n-6)==1&&is_nature(n)==1){
cout<<"Yes"<<endl;
cout<<(n-6);
}
else if(is_nature(n+6)==1&&is_nature(n)==1){
cout<<"Yes"<<endl;
cout<<(n+6);
}
else{
cout<<"No"<<endl;
while(true){
n++;
if((is_nature(n)==1&&is_nature(n+6)==1)||(is_nature(n)==1&&is_nature(n-6)==1)){
cout<<n;
break;
}
}
}
return 0;
}

浙公网安备 33010602011771号