0
已解决
高子健
新手天翼
新手天翼
#include<bits/stdc++.h>
using namespace std;
int n,cnt;
bool cmp(int n){
if(n==1)
return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0)
return false;
}
return true;
}
int main(){
cin>>n;
if(n==1){
cout<<"0";
return 0;
}
for(int i=1;i<=n;i++){
int j=i+2;
if(cmp(i)&&cmp(j))
cnt++;
}
cout<<cnt;
return 0;
}
什么情况
long long没用试过了
加了特判
没超时
0
0
0
周明轩
资深光能
资深光能
可能i+2已经超过n了
所以得把:
for(int i=1;i<=n;i++){
int j=i+2;
if(cmp(i)&&cmp(j))
cnt++;
}
改成:
for(int i=1;i<=n;i++){
int j=i+2;
if(cmp(i)&&cmp(j)&&j<=n)
cnt++;
}
就AC了:
望采纳
0