首页 > 代码库 > uva1210

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 }

uva1210