#include<stdio.h>
#include<math.h>
int isPrime(int num);
int main()
{
int n,i,j,k,_n=0;
scanf("%d",&n);
for(i=3; i<=n-2; i+=2)
if(isPrime(i)==1&&isPrime(i+2)==1)
_n++;
printf("%d",_n);
return 0;
}
int isPrime(int num)
{
int i,k=sqrt(num);
for(i=2; i<=k; i++)
if(num%i==0) break;
if(i<=k) return 0;
return 1;
}
isPrime为判断是否为素数(质数)的函数,是返回1,不是返回0。为了减少复杂度,判断一个数是否为素数的时候仅需要判断到它的开方即可。
先从一般情况开始,可以先排除素数2、3这一素数对,不符合条件。所以从素数3开始找起,而因为除了2以外的偶数都不是素数,遂i+=2。