poj2739
求出素数表之后暴力搜索
1 #include <stdio.h> 2 #include <string.h> 3 int prime[10000]; 4 bool number[10001]; 5 int constructPrime(int n) 6 { 7 int i,j; 8 int pc=0; 9 memset(number,false,sizeof(number)); 10 for(i=2;i<=n;i++) 11 if(!number[i]) 12 { 13 prime[pc++]=i; 14 for(j=i;j<=n;j+=i) 15 number[j]=true; 16 } 17 return pc; //pc is the number of prime 18 } 19 int main() 20 { 21 int tot=constructPrime(10000); 22 int n; 23 int i,j,tmp; 24 int rep=0; 25 while(1) 26 { 27 scanf("%d",&n); 28 if(n==0) 29 return 0; 30 rep=0; 31 for(i=0;i<tot && prime[i]<=n;i++) 32 { 33 tmp=0; 34 for(j=0;j<tot && tmp<n;j++) 35 tmp+=prime[i+j]; 36 if(tmp==n) 37 rep++; 38 } 39 printf("%d\n",rep); 40 } 41 return 0; 42 }

浙公网安备 33010602011771号