还是素数筛选法,数组得开大点
#include<stdio.h>
#include<math.h>
int a[100001];
void init()
{
int n=32768+1;
for(int i=2;i<=n;i++)
{
if(a[i]==0)
for(int j=i+i;j<=n;j+=i)
a[j]=1;
}
}
int main()
{
int i,j,n;
init();
while(scanf("%d",&n)==1)
{
int count=0;
for(int i=2;i<=n/2;i++)
{
if(a[i]==0&&a[n-i]==0)
count++;
}
printf("%d\n",count);
}
return 0;
}