题样:
#include<math.h>
int isprime(int n)//返回1表示参数n是素数,返回0表示参数n不是素数
{
if(n<=1)return 0;
int i=0,flag=1;
for(i=2;i<=(int)sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
#include<stdio.h>
int main(){
int n=0;
scanf("%d",&n);
//
int i=0,k=0,j=0;
int a[100000]={0};
for(i=2;i<=n;i++)
{
if(isprime(i)==1)
{
a[k]=i;
k++;
}
}
int count=0;
for(i=0;i<k-1;i++)
{
if(a[i+1]-a[i]==2)
{
count++;
}
}
printf("%d",count);
return 0;
}
//2,3,5,7,11,13,17,19
//isprime 必须用sqrt提高运行速度,因为n=99999时,存在结果1224。