2009-06-04 20:24:56來源不明

ACM 686 686 - Goldbach’s Conjecture (II)

作法:建表
質數表我是用自己建的...內建的我不怎麼想用...

之後就做建表的動作

/***********************************************************/

#include<stdio.h>  
#include<stdlib.h>  
#include<math.h>  
int math[5200]={0};
int num[32768]={0}; 
main()  
{  
 int n,a,b,c,m=1;
 math[0]=2;  
 for(a=3;a<32768;a=a+2
  {  
   int flag=0;  
   for(b=0;math[b]<=sqrt(a);b++)  
    {  
     if(a%math[b]==0)  
      {  
       flag=1;  
       break;  
      }  
    }  
    if(flag==0)  
     {  
      math[m]=a;  
      m++;  
     }  
  }
 for(a=1;a<m;a++)
  for(b=a;b<m;b++)
   {
     if(math[a]+math[b]>=32768) break;
     else num[math[a]+math[b]]++;
   }
 while(scanf("%d",&n)==1&&n!=0) 
  printf("%d\n",(n==4)?1:num[n]);
 return 0;  
}