大数组最好定义成全局变量,不要放在main里(具体为什么,现在我也搞不清,好像是栈的原因,以后再研究,呵呵) #include<stdio.h>#define MAX 32768int b[MAX]={0};int main(){ int a, i, j; b[2] = 1; for(i=3; i<MAX; i += 2) b[i] = 1; for(i=2; i<MAX; i++) { if(b[i]) { for(j = 1; j < MAX/i; j++) { b[i + j * i] = 0; } } } while(scanf("%d", &a)) { int n = 0, k = a/2; if(a == 0) break; for(i=3; i<=k; i+=2) { if(b[i] && b[a-i]) n++; } printf("%d/n", n); } return 0;}