思路
1.首先是要写一个bool类型的判断函数来判断是否为素数,来判断范围内的数字
2.原本思路是先构建一个素数表prime[],然后再一个一个运算后一个素数减去前一个素数是不是=2,这样做效率太慢,不能通过检测
3.正确思路是判断一个数字i和i+2是不是同时是素数,如果同时是素数就result+1
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool isPrime (int num);
int main(void){
int index=1,num,result=0;
scanf("%d",&num);
bool isPrime(int x){
int tmp=sqrt(x);
for(int i=2;i<=tmp;++i){
if(x%i==0){return false;}
}
return true;
}
for(int i=2;i<=num-2;i++){
if(isPrime(i)&&isPrime(i+2)){result++;}
}
printf("%d",result);
return 0;
}