#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n;
int a[10000];
int k = 0;
for(int m = 2;m <= 10000;m++)
{
int t = 1;
for(int i = 2;i*i <= m;i ++)
{
if (m % i == 0)
{
t = 0;
break;
}
}
if(t)
{
a[k] = m;
k ++;
}
}
while(scanf("%d",&n)!=EOF&&n)
{
int x = 0;
for(int i=0;a[i]<=n;i++)
{
int sum=0;
for(int j=i;a[j]<=n;j++)
{
sum+=a[j];
if(sum==n)
{
x++;
break;
}
else if(sum>n)
break;
}
}
printf("%d\n",x);
}
return 0;
}
/*应该算是水题 枚举10000以内的素数存入数组再进行sum筛选。一开始把sum位置放错导致错误。*/