思路:
素数对一定是两个奇数,所以在1-n范围内枚举奇数即可
C++代码:
#include<cstdio>
#include<cmath>
bool isprime(int n){
if(n<=1) return false;
int sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n,count=0;
scanf("%d",&n);
for(int i=3;i+2<=n;i=i+2){
if(isprime(i)==true&&isprime(i+2)==true){//素数对一定是两个奇数对
count++;
}
}
printf("%d\n",count);
return 0;
} ``