顺便把kuangbin的素数筛看了一遍,还是不太懂。。。这就是菜鸟的感觉吧。。。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
#include <set>
using namespace std;
typedef long long LL;
const int maxN=2e5+5;
int prime[maxN];
void getPrime()
{
for(int i=2; i<=maxN; i++)
{
if(!prime[i])
prime[++prime[0]]=i;
for(int j=1; j<=prime[0]&&prime[j]*i<=maxN; j++)
{
prime[prime[j]*i]=1;
if(!(i%prime[j]))
break;
}
}
}
int main()
{
getPrime();
int N;
while(~scanf("%d",&N)&&N)
{
int sum,ans;
sum=ans=0;
for(int l=1,r=1; r<=10000; r++)
{
sum+=prime[r];
if(sum<N)continue;
while(sum-prime[l]>=N)sum-=prime[l++];
if(sum==N)ans++;
}
cout<<ans<<endl;
}
return 0;
}