/*****
ICPC??´???
1998??´ ??¢?????¢??§??? A??????
*****/
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#define TRUE 0
#define FALSE 1

int main(void) {
	int i;
	int j;
	int max=(int)pow(2.0,15.0);
	int hurui[max];
	
	/////?´???°?±???????/////
	for(i=0;i<max;i++) {
		hurui[i] = TRUE;
	}
	hurui[0] = FALSE;
	hurui[1] = FALSE;
	
	for(i=2;i<max;i++) {
		for(j=2;j<max;j++) {
			if(i*j<max) {
				hurui[i*j] = FALSE;
			}
		}
	}
	/*for(i=0;i<100;i++) {
		if(hurui[i]==TRUE) printf("%d = ?´???°\n",i);
    }*/
	/////////////////////
	
	int input;
	int count;
	int sum;
	
	while(1) {
		scanf("%d",&input);
		printf("-%d\n", input);
		if(input==0) break;
		
		count = 0;
		sum = 0;
		
		if(hurui[input] == TRUE) {
			count++;
		}
		for(i=input-1; i>=2; i--) {
			if(hurui[i] == FALSE) continue;
			sum=i;
			for(j=i-1; j>=2; j--) {
				if(hurui[j] == FALSE) continue;
				sum+=j;
				if(sum==input) {
					count++;
					break;
				}
				if(sum>input) {
					break;
				}
			}
		}
		printf("%d\n",count);
	}
	
	exit(0);
}