写的有点麻烦
#include<stdio.h>
int sqrrt(int i)//开平方根向上取整
{
int j;
for(j=0;j<i;j++)
{
if(j*j==i)
{
return j+1;
break;
}
else if((j*j)<i&&((j+1)*(j+1))>i)
{
return j+1;
break;
}
}
}
int prime(int i)//判断是否为素数
{
int j,k,m=sqrrt(i);
for(k=2;k<m;k++)
{
if(i%k==0)
{
return 0;
break;
}
}
return 1;
}
int main()
{
int i,j=0,k=3;
if(scanf("%d",&i));
if(i%2==0)
{
i-=1;
}
while(k<i)
{
if(prime(k)==1&&prime(k+2)==1)
{
j++;
k+=2;
}
else if((prime(k)==1&&prime(k+2)==0)||(prime(k)==0&&prime(k+2)==0))
{
k+=4;
}
else
{
k+=2;
}
}
printf("%d\n",j);
return 0;
}