uva1210
题目连接:UVA - 1210
1 #include<cstdio> 2 #include<cmath> 3 const int maxn=10010; 4 int pri[maxn]; 5 int ispri[maxn]; 6 int sum[maxn]; 7 int cnt; 8 void init() 9 { 10 cnt=1; 11 int m=sqrt(maxn+0.5); 12 for(int i=2;i<=m;i++) if(!ispri[i]) 13 for(int j=i*i;j<=maxn;j+=i) 14 ispri[j]=1; 15 for(int i=2;i<=maxn;i++) 16 if(!ispri[i]) pri[cnt++]=i; 17 18 } 19 20 int main() 21 { 22 int n; 23 init(); 24 25 for(int i=1;i<cnt;i++) 26 sum[i]=sum[i-1]+pri[i]; 27 28 while(scanf("%d",&n)&&n) 29 { 30 int ans=0; 31 for(int i=1;i<=cnt;i++) 32 { 33 int temp=sum[i]-n; 34 for(int j=0;j<=i;j++) 35 if(sum[j]==temp) ans++; 36 } 37 printf("%d\n",ans); 38 } 39 }