#include <bits/stdc++.h>
using namespace std;

int a[10009];
vector<int> p;
map<int,int> m;

void sieve()
{
    int i,j,t1,t2;
    for(i=0;i<10003;i++)
        a[i]=1;
    a[0]=a[1]=0;
    for(i=2;i<=10000;i++)
    {
        if(a[i]==1)
        {
            p.push_back(i);
            for(j=2*i;j<=10000;j+=i)
            {
                a[j]=0;
            }
        }
    }
    for(i=0;i<p.size();i++)
    {
        t1=0;
        for(j=i;j<p.size();j++)
        {
            t1+=p[j];
            m[t1]++;
        }
    }
    return;
}


int main()
{
    int i,j,t1,t2,n,ans;
    sieve();
    while(1)
    {
        scanf("%d",&n);
        if(n==0)
            break;
        ans=m[n];
        printf("%d\n",ans);
    }
    return 0;
}