sdibt 1221哥德巴赫猜想
来源:互联网 发布:梦幻西游手游秒货软件 编辑:程序博客网 时间:2024/05/17 08:32
/*题意中文题 分析:打表建立素数表,若是素数下标为0,不是素数下表为1 若vis[i]=0是素数,vis[n-i]=0也为素数,则count++; */#include <stdio.h>#include <string.h>#include <math.h>const int MN=33000;int main(int argc, char *argv[]){int vis[MN];int i,j,n;memset(vis,0,sizeof(vis));int cas=0;//快速素数打表记住 for (i=2;i<MN;i++){// 下标为0是素数 if(!vis[i]) for (j=i*i;j<MN;j+=i) { vis[j]=1; }} while(scanf("%d",&n) && n) { int count=0; for (i=2;i<=n/2;i++) { if(!vis[i]) { if(!vis[n-i]) count++; } } printf("%d\n",count); }return 0;}