Sum of Consecutive Prime Numbers
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 24003 | Accepted: 13077 |
Description
Some positive integers can be represented by a sum of one or more consecutive prime numbers. How many such representations does a given positive integer have? For example, the integer 53 has two representations 5 + 7 + 11 + 13 + 17 and 53. The integer 41 has three representations 2+3+5+7+11+13, 11+13+17, and 41. The integer 3 has only one representation, which is 3. The integer 20 has no such representations. Note that summands must be consecutive prime
numbers, so neither 7 + 13 nor 3 + 5 + 5 + 7 is a valid representation for the integer 20.
Your mission is to write a program that reports the number of representations for the given positive integer.
numbers, so neither 7 + 13 nor 3 + 5 + 5 + 7 is a valid representation for the integer 20.
Your mission is to write a program that reports the number of representations for the given positive integer.
Input
The input is a sequence of positive integers each in a separate line. The integers are between 2 and 10 000, inclusive. The end of the input is indicated by a zero.
Output
The output should be composed of lines each corresponding to an input line except the last zero. An output line includes the number of representations for the input integer as the sum of one or more consecutive prime numbers. No other characters should be inserted in the output.
Sample Input
2 3 17 41 20 666 12 53 0
Sample Output
1 1 2 3 0 0 1 2
Source
本题意思是,给出一个小于一万的数,求它能被连续质数相加的组数。
打表,嘿嘿,写题,就是要功利。
打表代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int a[100000];
int main()
{
int s,m,n,i;
s=1;
for(i=2;i<10000;i++)
{
n=1;
for(m=2;m<=sqrt(i);m++)
{
if(i%m==0)
{
n=0;
break;
}
}
if(n)
{
a[s]=i;
s++;
}
}
printf("%d\n",s);
int j,k,l,sum,sum1,b;
for(j=1;j<=10000;j++)
{
b=0;
for(k=1;k<s;k++)
{
sum=a[k];
l=k+1;
while(sum<j)
{
sum+=a[l];
l++;
}
if(sum==j)
{
b++;
}
}
printf("%d,",b);
}
return 0;
}
AC代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
unsigned int s[100002]={0,0,1,1,0,2,0,1,1,0,1,1,1,1,0,1,0,2,1,1,0,0,0,2,1,0,1,0,1,1,1,2,0,0,0,0,2,1,0,1,0,3,1,1,0,0,0,1,1,1,0,0,1,2,0,0,1,0,1,2,2,1,0,0,0,0,0,2,1,0,0,2,2,1,0,1,0,1,1,1,0,0,0,3,1,0,0,0,1,1,2,0,0,0,0,1,0,2,1,0,2,2,1,1,0,0,0,1,0,2,0,0,2,1,0,0,0,0,0,2,2,1,0,0,1,0,0,2,1,1,0,2,1,0,0,0,0,1,2,2,0,0,0,2,1,0,0,0,0,1,1,1,2,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,1,2,0,0,0,0,0,1,2,2,0,0,1,0,1,2,0,0,0,1,1,1,0,1,0,3,1,3,0,0,1,0,2,0,0,0,0,0,2,2,0,0,0,0,1,0,0,0,1,2,1,3,0,0,0,1,2,1,0,0,0,2,0,1,1,0,1,1,3,1,0,1,0,0,0,0,0,0,0,3,1,1,0,0,0,1,2,0,0,0,0,2,1,0,0,0,1,2,1,2,1,0,0,0,2,1,0,1,1,3,0,1,0,0,0,3,1,0,1,0,0,1,0,0,0,0,0,0,2,1,0,0,2,0,1,1,1,0,0,5,0,1,0,0,0,1,1,1,1,0,0,2,1,0,1,0,1,1,2,2,0,0,0,0,0,1,0,0,3,1,0,0,0,0,0,1,1,2,0,1,1,2,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,3,2,2,0,0,1,0,0,2,0,1,1,1,2,0,0,0,0,1,2,0,0,0,0,2,1,1,0,1,0,3,0,0,0,0,0,1,2,1,2,0,1,0,0,0,0,0,0,1,1,2,0,1,1,1,0,0,0,0,1,2,1,1,2,1,0,0,1,3,1,0,1,2,0,0,0,0,0,2,1,0,0,0,0,0,2,2,0,0,1,1,2,2,0,0,0,1,1,0,0,1,1,2,1,0,0,0,0,2,2,0,0,0,1,0,0,2,0,0,0,3,2,1,0,0,1,1,0,2,0,1,0,2,0,0,0,0,2,1,3,0,0,0,0,1,0,1,0,1,1,1,1,2,0,0,0,1,0,0,0,0,1,2,1,0,0,0,0,1,2,1,0,0,0,0,1,1,1,0,0,2,2,1,0,0,1,1,2,2,0,0,1,2,1,1,1,0,1,1,0,1,0,0,0,0,2,1,0,0,1,2,1,1,0,0,0,2,0,1,0,0,0,3,1,0,1,0,1,1,1,1,0,0,0,0,1,2,0,0,0,1,1,1,0,0,0,2,1,1,2,0,1,0,1,1,0,0,0,1,2,2,0,1,1,2,1,1,1,1,0,1,0,1,0,0,0,2,1,0,0,0,0,1,1,0,0,0,0,2,3,2,1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,2,0,2,0,0,2,2,2,0,0,0,0,2,1,2,0,0,0,1,2,0,0,0,1,2,2,0,0,0,0,2,0,1,1,0,2,1,2,0,0,0,0,2,0,1,0,0,2,1,1,1,0,0,0,1,2,3,0,0,0,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,2,0,1,0,1,2,2,0,0,1,0,1,1,0,1,1,1,2,0,0,0,0,1,2,1,0,0,0,0,2,2,0,2,0,2,0,0,0,0,1,2,1,0,1,0,1,3,0,0,0,0,0,1,1,2,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,2,1,2,1,0,0,2,2,0,0,0,0,2,1,2,0,0,0,0,2,0,0,0,0,0,1,1,0,0,0,3,0,1,1,0,0,5,3,0,0,0,0,1,1,0,2,0,1,0,0,1,0,0,1,2,1,3,0,0,1,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,2,1,1,0,0,0,2,2,0,0,0,0,1,1,1,0,0,1,1,1,0,1,0,2,2,1,3,0,0,0,1,1,1,0,0,0,3,1,0,0,0,2,2,0,0,0,0,0,2,1,0,0,0,1,0,2,3,0,1,2,0,2,1,0,0,0,1,0,0,0,0,0,2,1,1,0,0,0,3,0,1,0,0,1,0,3,3,0,0,0,0,0,1,0,0,0,1,2,0,0,0,0,0,1,1,0,0,3,1,0,1,0,0,0,2,1,1,0,1,0,2,1,1,0,0,1,1,2,2,0,0,0,0,0,1,2,0,0,2,1,0,0,0,0,2,1,1,0,0,1,1,1,1,1,0,3,3,0,2,1,0,0,2,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,2,0,0,1,1,1,1,1,1,1,0,0,0,1,1,3,0,0,0,2,3,0,0,0,0,1,0,0,1,0,2,1,0,1,0,1,2,0,0,2,0,0,0,0,0,1,0,0,1,2,1,2,0,0,0,2,2,0,0,0,1,0,0,0,1,0,0,4,2,2,1,0,1,0,0,1,0,1,0,2,4,0,0,0,0,2,0,2,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,3,0,0,0,0,1,2,2,0,0,1,0,1,1,1,0,0,0,0,1,1,1,0,0,2,2,2,1,0,1,1,0,1,1,1,0,2,1,0,0,0,0,2,1,1,0,0,0,0,3,1,0,0,0,0,2,0,0,0,0,2,1,2,2,1,0,1,1,0,0,0,0,2,0,0,1,0,1,1,1,1,0,0,0,2,2,0,0,0,1,1,1,1,1,2,0,3,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,0,2,0,0,0,1,0,0,0,1,2,3,0,1,0,0,0,1,4,2,1,0,0,0,0,1,0,0,1,1,1,0,1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,2,2,2,0,0,1,1,0,0,0,0,1,3,2,0,1,0,1,4,0,1,0,1,0,1,1,0,1,0,0,0,1,3,0,0,0,0,1,0,0,0,0,1,3,0,0,1,1,0,0,1,0,0,1,1,1,1,0,0,1,2,1,1,0,0,0,2,0,0,0,0,2,0,1,2,0,0,0,1,2,1,0,0,0,3,1,0,0,0,0,3,0,2,0,0,1,0,1,1,0,0,1,1,2,1,0,0,0,1,0,2,1,0,0,1,2,0,0,0,0,0,2,1,1,0,0,2,0,1,2,1,2,1,2,2,1,1,0,2,1,1,0,0,0,3,2,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,3,0,0,0,0,1,0,1,1,1,0,0,3,3,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,1,2,0,0,1,0,2,1,0,0,2,3,0,1,0,0,0,2,2,1,0,0,1,1,0,1,0,0,2,1,0,0,1,0,1,0,0,2,0,0,0,2,1,1,1,0,2,0,0,2,0,1,0,0,2,1,0,0,0,2,0,1,0,0,1,3,0,2,0,1,0,2,0,0,0,0,1,1,2,2,1,0,0,0,2,1,0,0,0,0,1,0,0,0,1,2,0,0,0,0,0,3,2,2,0,0,0,0,4,0,0,0,1,0,1,1,0,0,1,0,1,1,0,0,0,2,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,2,0,1,0,2,2,1,0,0,0,1,0,1,0,0,0,2,2,0,0,1,1,1,3,0,2,1,0,2,2,2,1,0,1,1,2,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,1,2,2,0,0,1,1,2,3,0,0,0,1,2,1,0,0,0,0,2,0,0,0,0,0,1,0,0,0,1,2,0,1,0,1,0,0,0,1,1,0,1,2,3,1,0,2,0,3,1,0,0,0,0,1,1,3,1,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,1,0,0,1,0,3,1,0,0,0,1,1,2,2,0,0,1,0,1,1,0,0,0,1,0,1,0,0,2,1,2,2,0,2,0,0,4,0,0,0,0,2,0,2,0,0,0,0,1,2,0,1,1,1,2,2,0,0,0,1,1,1,0,0,0,0,0,0,0,0,2,2,0,2,0,0,0,2,1,0,0,0,2,3,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,0,0,1,0,2,0,0,0,2,2,0,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,2,2,0,4,0,0,0,0,3,0,0,1,2,0,0,0,0,0,0,2,0,0,0,1,0,2,2,0,0,0,1,2,2,1,1,1,0,0,1,2,2,0,0,0,0,2,1,1,0,1,1,2,0,0,2,1,0,0,1,0,0,0,0,3,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,3,0,1,1,0,2,1,1,1,0,0,1,1,3,0,0,0,0,1,1,1,0,0,1,1,1,2,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,2,0,0,1,0,0,1,2,1,0,1,0,2,0,2,1,0,1,1,1,1,0,0,0,0,1,0,0,0,0,3,2,1,0,0,0,2,0,0,1,0,2,3,2,2,0,0,1,1,0,0,0,0,1,1,2,1,0,1,0,2,0,1,2,0,0,0,0,1,0,0,0,2,1,2,1,0,1,1,1,0,0,0,1,1,0,2,1,0,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,3,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,0,0,2,1,0,1,3,0,0,1,1,1,2,0,0,1,2,1,1,0,0,1,0,0,2,0,0,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,2,1,0,0,1,1,0,1,0,1,1,2,2,1,1,0,0,1,0,0,1,1,0,0,2,0,0,1,3,0,2,0,1,0,2,1,1,1,0,0,0,2,1,0,0,0,0,1,2,1,0,0,0,1,1,0,0,1,2,1,0,0,1,0,3,3,1,0,1,1,1,1,2,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,2,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,2,2,0,1,1,2,1,0,0,0,1,3,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,2,1,1,1,0,0,2,1,1,2,0,1,1,3,0,1,0,0,1,4,1,0,0,0,1,2,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,3,0,1,1,0,1,2,1,1,0,1,0,0,1,0,1,0,0,1,3,1,1,0,1,2,0,2,0,1,0,1,1,0,1,0,1,0,0,2,1,0,0,2,2,1,0,0,0,0,1,1,1,0,0,1,0,1,1,1,0,2,1,1,2,0,0,0,2,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,0,3,2,1,0,0,0,0,1,0,0,0,0,1,0,2,0,1,0,0,1,1,0,0,1,1,0,2,2,0,1,0,0,1,0,0,0,2,0,0,0,0,1,2,1,1,1,0,1,2,3,1,0,0,0,0,2,1,1,0,0,2,0,1,0,0,1,2,1,0,0,0,1,3,1,0,2,0,2,0,3,2,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,2,1,1,0,0,0,1,1,0,2,0,0,0,1,1,1,0,1,2,0,0,0,0,1,1,0,0,0,0,1,2,2,0,0,0,0,0,1,2,0,1,0,0,1,4,1,0,0,1,1,1,0,0,1,2,1,1,0,0,0,1,0,0,0,0,0,0,3,1,0,1,0,2,1,2,0,0,0,0,1,1,0,0,1,1,1,4,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,3,1,0,0,0,1,1,2,0,0,0,1,1,2,0,0,0,0,1,0,0,0,1,1,1,3,0,0,0,1,0,2,0,0,2,1,1,1,0,1,0,2,0,1,0,0,2,1,2,0,0,1,0,2,1,1,0,0,2,1,1,1,0,0,1,1,0,1,0,0,1,3,0,0,1,0,0,0,1,2,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,2,2,0,1,1,1,0,2,1,1,0,0,2,1,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,3,0,1,0,2,2,1,0,1,0,1,1,1,1,1,0,0,0,0,4,1,0,0,0,1,1,0,1,1,0,4,2,0,0,0,1,1,0,0,0,0,0,2,0,0,0,0,0,1,3,1,1,0,1,2,0,0,0,0,0,3,1,0,1,0,0,1,2,1,0,0,0,2,1,1,2,0,2,1,1,1,1,0,0,0,1,1,0,1,2,3,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,0,1,2,2,0,0,0,3,2,0,0,0,0,3,1,1,1,0,2,1,1,2,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,2,0,0,2,0,1,1,1,1,0,1,0,2,1,1,0,0,0,1,0,1,0,0,3,1,1,1,0,0,0,1,0,2,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,3,2,1,1,2,0,0,0,0,2,0,1,1,1,0,0,1,1,0,0,1,0,1,1,1,0,1,0,1,2,2,1,1,2,1,1,2,2,0,0,1,0,1,0,0,1,2,0,2,0,2,0,1,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,1,2,0,0,0,0,0,3,1,3,0,0,0,1,2,0,0,1,0,0,0,1,0,0,0,3,1,1,0,0,0,0,1,1,0,0,0,0,2,1,0,0,2,0,0,0,1,0,0,1,2,1,0,0,3,3,1,1,0,0,0,0,1,1,0,0,0,1,1,3,0,0,0,1,0,1,1,1,0,2,1,1,0,1,0,0,4,0,0,0,0,1,1,0,0,0,2,2,0,0,0,0,0,1,1,1,0,2,0,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,1,2,0,1,0,0,1,0,0,1,2,1,1,2,2,1,2,0,0,1,2,1,1,0,2,0,3,4,0,2,0,0,0,0,2,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,2,1,1,0,0,0,2,3,1,0,0,1,1,0,1,0,1,2,0,0,2,0,0,1,0,2,1,1,2,0,2,1,0,0,0,0,2,2,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,3,2,2,1,0,0,2,0,0,0,1,0,1,0,1,2,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,2,0,0,0,0,0,2,1,0,1,0,4,2,2,0,0,0,0,2,3,0,0,1,1,0,2,0,0,1,1,3,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,2,1,0,0,0,0,2,0,1,2,0,1,1,1,0,0,0,1,2,0,2,1,1,1,0,1,1,0,0,0,0,0,2,2,0,0,2,2,1,1,0,1,0,2,0,2,0,0,1,0,1,1,0,0,1,0,1,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,1,0,2,2,0,0,3,1,0,0,0,0,1,0,1,2,0,1,2,1,3,0,0,0,0,0,0,1,0,0,2,2,1,0,0,0,2,1,0,1,0,1,2,0,2,0,1,1,0,0,2,0,0,1,0,0,0,1,0,0,1,1,1,1,2,0,0,2,0,0,0,0,0,1,2,0,0,0,0,2,0,1,0,1,2,0,1,0,0,0,2,3,1,2,1,0,2,0,0,0,1,0,0,1,2,0,0,1,0,0,2,0,0,1,0,2,1,1,0,0,3,0,0,0,1,0,1,2,0,0,1,1,1,2,2,0,1,2,0,2,2,1,0,0,0,0,2,0,0,0,2,0,0,0,0,0,1,2,0,1,0,1,2,0,1,0,0,0,0,1,0,1,1,0,3,0,1,0,0,0,1,1,0,0,0,0,2,0,0,0,1,1,0,0,2,0,2,2,0,2,2,1,0,1,2,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,3,2,2,0,0,1,0,1,0,0,0,0,2,2,0,0,0,0,1,1,2,1,0,0,2,1,0,0,4,1,1,2,0,0,0,2,0,0,1,0,0,1,1,1,0,0,0,2,0,0,1,0,1,1,1,1,0,1,0,1,0,2,0,0,3,0,0,2,0,0,0,1,1,1,0,0,0,2,1,1,0,0,2,0,1,1,0,0,1,1,0,0,0,0,1,3,1,1,0,1,1,0,1,1,0,2,0,1,1,0,0,1,1,1,0,0,1,0,1,1,1,2,0,0,1,2,0,3,1,0,1,0,0,0,0,0,0,2,1,0,0,0,3,1,3,1,0,0,1,1,1,2,0,0,0,1,1,0,0,0,0,1,0,2,0,0,0,0,0,1,0,0,2,2,2,2,0,0,1,0,0,1,0,0,0,3,0,0,0,0,0,1,0,1,0,1,1,1,1,2,0,0,1,2,0,1,0,0,1,1,1,2,1,0,0,0,0,1,0,0,1,2,1,1,0,1,1,1,2,0,3,0,0,0,0,0,0,0,0,0,1,3,0,0,2,2,0,0,0,0,0,1,0,2,2,0,0,0,1,0,0,1,0,2,1,0,0,0,0,0,2,1,1,0,1,1,2,1,0,1,1,1,0,1,1,1,1,1,2,0,0,3,1,1,0,1,1,1,1,1,1,1,2,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,2,0,0,0,1,1,0,1,0,0,1,1,1,3,0,1,0,2,3,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,2,0,0,1,0,3,1,3,0,0,0,3,1,2,0,1,0,0,1,0,0,0,0,1,3,2,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,2,0,1,0,0,1,1,2,1,1,0,0,2,0,0,0,0,1,1,0,0,0,0,2,1,2,2,1,0,0,2,0,2,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,2,2,0,0,1,1,1,0,0,0,1,0,1,2,0,0,0,0,0,0,0,1,0,1,4,1,0,0,0,1,0,0,1,0,2,2,0,0,0,0,0,3,1,1,0,1,1,0,2,1,0,2,0,2,2,2,1,0,0,0,0,2,0,0,0,2,2,2,1,0,0,1,0,2,0,0,1,2,0,0,0,0,0,2,1,1,0,0,1,1,0,1,1,0,0,2,0,1,0,0,0,0,2,1,3,0,0,1,2,0,2,1,0,2,1,0,0,0,0,0,1,2,0,0,0,1,1,0,0,0,0,1,0,2,1,0,0,0,1,0,0,0,1,1,1,0,0,0,0,2,1,1,1,1,1,1,0,1,0,0,0,3,1,1,2,0,0,0,1,0,0,0,0,1,2,1,0,0,0,1,0,2,0,1,0,3,1,3,1,0,0,0,1,1,2,1,0,1,0,0,0,0,0,0,2,0,1,1,1,0,0,2,0,0,0,2,1,0,1,0,0,2,0,0,0,0,1,0,0,1,1,0,0,1,2,2,1,0,0,0,1,0,0,1,1,2,0,2,0,0,1,0,2,0,0,0,0,2,2,3,1,0,1,0,0,1,0,2,1,0,0,1,2,0,1,3,1,0,0,1,0,2,2,2,0,0,0,1,2,0,0,0,0,2,0,0,0,0,1,0,2,0,2,1,0,2,1,1,1,0,0,1,1,0,0,0,0,2,1,0,0,0,0,0,0,2,0,1,2,0,1,3,0,0,0,0,1,1,0,0,0,1,1,2,2,0,1,1,0,0,0,0,0,1,0,0,1,1,0,2,1,0,0,0,0,0,1,0,0,1,0,1,1,3,0,0,0,2,3,0,1,1,0,1,1,2,0,0,1,2,1,1,1,0,0,0,0,0,0,0,0,1,2,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,1,0,1,3,1,0,0,1,1,3,0,0,1,1,0,0,0,0,1,2,0,0,2,0,1,0,2,2,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,3,2,2,1,0,0,1,3,1,0,0,0,1,2,2,0,1,0,0,1,1,0,1,1,2,0,1,0,0,1,0,1,1,0,1,1,2,0,0,0,1,0,2,1,1,0,0,0,0,0,0,1,0,0,3,0,0,0,0,2,2,1,1,0,0,1,1,1,0,0,1,2,0,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,3,2,0,0,1,2,0,0,2,1,0,0,0,0,0,1,0,3,1,0,2,0,1,2,0,0,0,0,1,0,1,3,0,0,1,2,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,1,2,1,0,1,0,1,1,2,0,0,1,1,2,1,0,0,2,1,0,1,1,0,0,1,1,0,0,0,1,1,0,1,0,1,1,3,0,0,0,0,0,0,1,2,1,0,2,1,1,1,0,1,1,0,2,0,0,0,1,2,0,1,0,0,0,1,1,1,0,1,0,2,1,0,0,0,1,0,2,1,1,0,0,2,0,2,0,0,0,2,0,0,1,0,0,2,2,1,2,1,2,2,0,1,1,0,3,2,0,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,2,4,2,0,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,2,2,0,1,0,0,1,3,1,1,0,0,0,1,4,0,0,0,0,0,1,0,0,1,2,0,3,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,2,1,0,0,1,1,2,1,0,0,0,1,3,0,0,0,1,0,0,0,0,1,3,0,1,0,0,2,0,0,1,1,3,1,3,2,1,1,0,0,0,1,2,0,0,0,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,4,0,0,1,0,3,0,0,0,1,2,1,1,0,0,2,0,1,1,0,0,0,2,2,0,0,1,0,1,2,2,0,0,1,1,0,0,1,0,1,1,4,1,0,0,0,2,0,2,1,0,1,0,2,1,0,2,0,2,2,2,0,2,0,0,0,0,0,0,1,1,0,0,0,0,0,2,1,0,0,0,0,0,2,1,0,0,0,1,1,1,1,0,0,4,1,0,0,0,0,1,2,1,0,1,0,0,0,1,0,1,1,1,0,1,1,0,0,2,3,1,0,0,0,0,1,0,0,0,2,1,2,1,1,1,0,0,0,2,1,1,0,0,1,1,0,0,0,1,3,1,0,1,0,0,0,1,0,1,0,0,1,2,0,0,0,0,2,1,0,0,2,1,0,2,0,1,0,1,1,0,0,2,0,0,0,0,0,0,0,0,3,0,0,1,3,1,0,0,0,1,0,3,2,1,0,1,0,1,0,0,0,0,1,2,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,2,1,2,2,0,0,2,1,2,0,1,0,0,2,1,1,0,0,1,2,0,0,0,0,0,0,2,2,0,1,0,0,2,1,0,0,0,0,1,1,0,1,1,2,1,0,0,2,0,0,1,1,0,0,1,1,2,2,2,0,1,2,0,0,0,0,0,0,0,1,1,1,1,0,0,2,0,0,0,1,1,1,0,0,0,2,2,1,0,0,0,1,1,0,0,0,0,1,1,0,2,0,2,2,0,2,0,0,2,1,0,1,1,2,1,0,1,1,0,0,1,0,0,2,0,0,1,1,1,1,0,2,0,1,1,0,0,0,1,1,3,1,1,0,0,1,1,2,0,0,1,1,1,1,0,0,1,0,1,2,0,0,0,1,1,0,0,0,0,0,2,0,0,0,1,1,0,1,0,1,0,3,1,0,0,0,0,1,1,1,0,0,1,2,0,0,0,0,0,1,2,1,0,1,0,2,0,0,0,1,1,2,2,1,0,0,0,2,1,0,0,0,1,1,2,0,0,0,1,2,2,2,0,0,0,0,0,1,1,0,1,2,0,0,0,0,0,1,0,1,0,1,0,0,2,0,0,1,2,3,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,3,2,1,0,1,2,1,0,1,0,1,0,1,3,2,0,0,2,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,2,0,0,0,0,0,0,1,0,2,1,2,0,0,2,2,2,2,0,0,0,1,0,0,0,0,2,1,1,2,0,0,0,1,0,1,0,0,1,2,1,1,0,0,0,2,1,1,0,1,0,0,0,0,0,0,1,2,2,1,0,1,1,1,0,0,0,0,1,0,0,3,1,0,0,0,1,1,0,1,1,2,1,0,0,1,1,1,1,2,1,0,1,0,2,0,2,1,0,2,1,0,0,0,1,2,1,1,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,2,0,1,0,0,0,0,1,1,0,1,0,3,0,0,1,0,0,2,0,0,1,0,1,0,2,1,0,1,4,2,1,0,0,0,0,2,0,1,0,0,0,1,1,0,1,0,0,1,1,2,0,0,0,0,0,0,1,0,2,1,1,1,1,0,1,1,0,0,3,0,1,3,0,0,0,0,0,1,1,1,1,1,1,2,2,2,1,0,1,0,0,1,1,1,0,1,0,1,0,0,1,2,1,0,0,0,3,3,1,1,0,0,0,2,0,1,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0,2,1,1,1,1,0,0,1,3,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,0,0,3,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,1,2,1,1,0,0,0,2,1,0,1,0,2,1,1,0,0,1,1,2,3,0,0,0,1,0,0,0,0,0,0,0,2,2,0,0,0,1,0,1,1,0,1,0,1,0,0,0,1,0,2,0,0,0,0,1,0,2,0,2,2,3,0,0,1,0,0,2,0,1,0,0,1,0,1,0,1,0,1,4,1,1,0,0,1,0,0,1,0,0,2,2,3,2,1,0,0,0,0,0,0,0,0,2,0,0,2,0,0,2,2,1,0,1,0,0,0,1,0,0,1,0,1,2,1,1,0,3,0,0,1,0,0,2,0,1,0,1,0,0,1,0,0,0,2,1,0,1,0,0,0,2,1,3,0,0,2,0,1,3,1,2,0,1,0,0,0,0,0,1,3,1,0,0,0,1,0,0,0,0,3,1,0,0,0,0,1,2,2,0,1,0,0,2,1,1,0,1,0,1,0,2,0,1,1,0,1,0,1,0,0,2,0,2,0,0,1,1,1,0,0,1,0,1,0,0,3,1,1,1,0,1,0,0,1,2,1,1,1,0,0,1,1,2,1,0,0,0,0,1,0,0,2,2,0,0,1,0,2,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,1,0,0,0,1,2,1,0,0,0,2,1,1,0,1,0,0,1,1,1,1,2,1,0,2,1,0,1,1,2,2,0,2,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,3,3,1,0,1,1,1,2,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,1,1,0,2,2,2,2,0,0,1,2,0,0,2,2,3,0,1,0,0,0,2,0,0,1,1,0,2,0,0,0,0,3,1,3,1,1,1,0,0,2,1,1,0,1,0,0,1,0,0,0,1,0,1,2,0,1,2,0,0,0,0,1,1,2,1,0,1,0,0,0,1,1,1,0,1,0,3,0,0,0,1,1,2,2,0,0,0,1,0,0,1,1,2,1,0,0,0,2,1,1,2,0,0,0,1,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,1,2,2,0,1,0,1,1,0,1,2,1,0,0,0,1,1,2,1,1,0,1,0,0,1,2,0,0,2,2,1,1,0,0,0,2,0,1,0,1,0,1,1,0,1,0,1,0,0,2,0,0,1,1,0,0,0,0,0,1,3,2,1,0,0,0,0,0,0,1,0,3,1,1,0,0,0,1,0,1,2,1,3,0,4,0,0,0,0,1,2,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,1,1,0,1,0,2,2,1,0,0,2,0,0,0,2,0,3,0,1,1,0,0,0,1,0,0,1,0,0,0,0,2,2,1,1,0,2,0,0,0,2,0,2,2,1,0,0,2,0,0,1,1,3,1,1,0,1,1,0,1,0,0,2,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,2,0,1,1,1,0,0,1,1,0,0,0,2,0,0,1,0,2,0,2,1,1,2,0,1,1,0,0,0,1,0,0,1,1,0,0,1,0,1,2,3,1,0,0,0,0,0,0,1,0,0,1,0,2,1,0,0,0,1,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,2,0,1,0,0,2,1,1,1,1,1,0,0,0,1,0,0,1,2,1,0,0,0,0,0,1,0,0,0,0,1,2,2,0,0,1,1,0,1,0,1,0,0,2,1,1,0,1,2,2,1,1,1,1,0,0,0,1,0,1,2,2,2,0,0,1,1,0,0,1,0,0,0,1,0,1,0,0,3,1,1,1,0,0,0,0,1,0,2,0,1,0,2,0,1,0,0,2,0,0,0,1,1,1,0,0,0,0,2,0,1,1,2,0,0,0,0,0,0,1,1,0,2,0,1,2,1,1,2,0,0,0,1,0,0,1,0,0,2,0,3,1,0,0,1,1,0,0,1,2,0,1,1,0,0,0,1,1,1,2,1,2,1,0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,0,0,2,1,1,0,0,1,0,1,1,1,0,0,0,0,1,0,0,0,2,2,0,0,1,1,1,1,1,1,0,0,1,2,0,0,0,0,3,2,0,0,0,1,1,1,1,0,0,0,1,2,1,0,0,0,0,1,0,1,1,1,1,0,0,2,0,0,2,2,2,0,0,0,1,0,1,0,0,1,1,2,1,0,0,0,0,0,1,0,0,0,2,0,0,2,0,0,1,1,0,0,1,0,2,1,1,1,1,0,3,1,2,0,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,2,1,3,1,1,0,1,0,2,1,0,0,0,0,0,0,2,1,0,0,0,0,1,0,0,1,1,0,3,0,1,1,1,1,0,0,0,2,0,0,1,1,0,1,1,3,2,0,0,1,0,1,0,1,0,0,1,1,1,0,0,2,0,0,1,0,0,1,3,1,1,0,1,0,1,0,1,1,0,1,1,1,0,0,0,2,0,0,0,1,1,1,1,2,1,1,1,1,1,0,0,0,1,1,0,2,0,0,0,0,3,1,1,1,0,0,1,1,3,1,2,0,0,1,0,2,1,0,1,0,2,0,0,0,0,1,2,0,0,2,3,2,1,0,0,0,0,0,1,1,2,0,0,1,2,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,0,0,2,1,0,0,2,1,1,2,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,2,1,1,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,0,2,0,0,0,2,1,2,0,1,0,1,2,0,2,1,1,2,0,0,1,0,0,0,1,0,1,0,3,1,1,0,0,0,1,3,0,1,1,1,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,1,2,0,0,1,0,1,0,1,0,0,2,0,2,1,0,1,3,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,1,2,1,2,1,0,0,2,0,2,2,1,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,0,2,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,2,0,1,0,1,0,0,1,0,0,1,2,2,1,0,2,0,0,0,0,1,0,2,3,2,2,0,2,1,0,1,3,3,1,0,1,0,0,0,0,0,1,2,1,0,0,1,2,0,1,0,0,0,0,1,0,0,0,2,1,2,0,0,0,0,4,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,0,1,3,1,0,0,0,1,0,1,0,2,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,2,1,1,0,1,1,0,1,1,0,0,0,1,0,1,2,0,1,1,1,0,0,2,1,0,1,0,0,2,1,1,0,2,0,0,1,1,1,0,1,1,2,1,0,0,0,1,2,1,2,0,0,0,1,0,2,1,1,1,1,0,2,0,1,1,0,0,0,0,0,1,2,1,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,2,1,0,0,0,0,0,0,1,1,3,1,2,0,0,0,3,0,0,2,1,0,2,1,0,0,0,0,1,0,2,2,0,3,0,0,1,0,1,0,1,0,1,1,0,2,0,0,1,0,1,0,2,1,0,0,0,0,3,0,1,1,0,1,0,1,2,1,0,2,0,0,0,1,0,0,0,0,1,0,1,1,2,0,0,1,0,2,0,1,1,1,0,1,1,1,3,0,1,0,1,0,1,1,0,0,2,2,3,0,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,2,1,0,1,1,0,0,1,0,0,2,3,0,0,1,0,2,1,1,1,0,0,0,1,2,2,0,0,1,0,0,1,0,0,0,2,0,1,0,0,0,1,2,1,2,0,0,2,3,0,0,0,1,0,1,2,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,2,0,3,0,1,1,0,0,2,1,0,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,1,1,0,1,0,2,2,3,1,0,0,1,0,2,2,0,1,0,1,1,1,0,0,0,0,1,2,0,0,1,2,2,0,0,0,0,1,1,1,0,0,0,0,0,1,2,0,0,1,1,0,3,1,0,0,1,3,1,0,0,1,1,0,1,0,0,0,0,2,0,0,0,1,0,0,1,0,1,0,4,0,0,0,1,0,1,2,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,2,1,1,1,0,0,1,3,2,0,0,1,1,1,0,1,0,2,0,1,1,1,0,2,3,0,3,0,0,0,2,1,0,2,0,1,0,1,0,0,0,0,1,1,1,2,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1,0,1,2,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,3,2,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,1,2,1,0,0,0,0,1,1,1,1,0,0,1,0,2,2,1,2,1,0,1,0,1,0,1,0,3,1,2,0,0,0,0,2,0,0,0,2,3,0,1,0,0,0,0,1,1,1,0,0,3,0,0,1,0,0,1,0,2,0,0,0,2,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,1,0,2,3,0,1,1,2,3,0,1,0,0,0,2,0,0,1,0,0,0,2,2,0,0,1,2,0,0,0,0,2,0,2,1,0,0,2,1,1,0,0,1,4,1,0,0,0,0,0,0,0,3,1,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,2,1,2,0,0,2,0,0,0,0,0,0,2,1,0,0,1,1,0,1,1,1,2,0,1,0,1,0,2,1,2,1,0,0,1,1,0,0,1,0,1,1,2,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,0,3,0,0,1,1,0,1,0,1,0,0,2,0,2,0,2,3,1,2,2,1,0,2,2,0,0,3,1,0,1,2,0,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,2,1,1,2,0,0,1,2,1,0,0,1,0,1,2,0,0,0,0,1,1,2,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,2,1,0,1,1,2,0,1,1,1,0,0,3,1,0,0,1,0,0,0,1,1,0,0,1,1,0,0,0,1,1,1,0,1,1,2,0,0,0,0,0,1,0,0,2,1,1,0,0,2,1,0,0,0,1,0,0,1,1,1,1,3,1,0,1,0,0,0,2,1,0,0,0,1,0,0,1,0,0,0,0,0,0,2,3,0,0,2,0,1,0,3,0,0,1,2,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,1,2,0,0,0,2,2,0,1,1,0,1,1,3,1,0,2,0,1,0,2,2,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,2,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,1,2,0,2,0,3,2,0,1,0,1,0,2,2,1,0,0,2,0,1,1,0,0,0,1,1,0,0,0,0,2,1,1,0,2,0,1,1,0,2,0,0,2,2,2,1,0,1,0,1,0,0,0,2,0,0,1,1,3,0,1,1,2,0,0,2,1,1,1,0,1,0,2,2,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,1,2,3,2,0,0,1,0,0,1,0,0,0,1,0,1,2,0,0,0,1,0,0,0,0,0,0,1,1,0,1,3,2,1,1,0,0,0,0,0,1,1,2,0,0,1,0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,3,2,2,1,2,0,2,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,1,0,2,1,1,1,0,0,3,0,0,2,1,1,2,1,2,1,0,0,2,2,1,0,1,1,1,2,1,1,0,0,0,0,1,2,0,0,0,0,0,0,1,0,1,0,1,1,2,0,1,1,1,0,0,0,1,0,0,0,0,0,1,0,0,2,1,0,2,0,0,0,1,0,0,1,3,1,0,2,0,2,0,0,0,1,0,0,0,0,0,0,1,2,1,0,1,0,2,1,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,0,1,2,0,0,0,1,0,1,0,1,1,0,2,4,2,1,0,0,0,1,0,1,0,1,1,1,0,0,1,1,1,1,0,2,0,0,0,1,3,0,0,0,0,2,0,1,2,0,0,0,0,0,1,1,1,2,1,1,2,1,0,3,0,0,1,0,0,2,1,0,1,0,2,1,0,0,1,1,1,1,0,2,2,1,0,2,1,2,0,2,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,2,1,0,1,0,3,0,1,0,0,1,2,0,0,1,1,2,1,1,1,1,0,1,2,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,1,2,0,0,0,3,2,1,3,0,0,0,1,1,0,0,0,1,1,1,2,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,2,2,1,1,0,0,0,0,1,1,1,0,3,0,1,0,1,0,2,0,0,1,0,1,0,1,1,0,0,0,1,3,2,0,0,0,1,2,0,0,0,0,2,2,2,0,0,2,0,1,1,0,0,2,2,0,1,1,0,2,1,1,0,0,1,0,0,0,1,0,0,1,2,1,2,0,0,0,1,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,1,1,2,1,2,0,0,2,0,2,1,1,0,0,0,0,0,0,0,1,0,3,1,1,0,1,0,1,1,0,0,1,0,1,0,1,3,1,0,0,1,0,1,0,2,2,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,2,0,0,0,1,2,2,1,1,0,1,1,0,0,1,1,0,0,0,2,1,2,1,0,1,0,0,0,1,2,1,0,3,1,1,0,1,1,0,1,2,1,1,2,1,0,0,1,1,0,0,0,1,0,1,0,0,1,0,1,1,1,2,1,0,0,0,0,0,0,1,0,2,0,1,1,0,0,0,0,0,0,0,1,1,2,0,0,0,0,1,3,2,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,0,1,2,0,0,0,2,1,1,1,1,2,1,1,0,0,0,2,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,3,1,2,1,1,0,2,1,0,1,0,2,1,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,3,0,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,3,0,0,1,2,0,0,0,1,0,3,2,0,0,0,2,0,0,0,0,0,1,3,0,3,1,0,2,0,1,1,0,1,3,0,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,2,0,2,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,0,0,2,0,1,1,0,2,0,0,3,1,1,1,3,2,0,0,0,1,3,2,0,1,0,3,0,0,0,0,1,2,0,0,0,0,1,2,0,0,1,2,2,0,2,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,1,3,0,1,1,0,2,1,0,2,1,1,0,1,0,1,0,1,1,2,0,2,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,2,0,0,2,0,1,3,0,0,1,1,2,1,0,2,1,1,1,1,0,1,0,3,0,0,0,1,0,0,0,1,1,0,2,0,0,0,1,0,0,1,1,0,1,1,0,1,2,0,1,1,0,0,3,0,1,0,1,0,2,2,2,0,1,0,0,0,0,0,0,0,0,0,1,1,0,2,2,1,1,1,0,0,0,1,0,0,2,0,2,1,2,0,0,2,0,0,1,0,1,1,0,1,0,0,0,0,2,1,1,0,0,0,0,0,0,0,0,1,1,2,0,1,0,2,1,1,2,0,1,2,1,0,0,0,1,0,1,0,0,0,0,0,1,0,2,1,0,1,1,0,1,0,0,0,1,3,0,0,0,0,0,1,2,0,0,1,1,1,1,0,0,0,1,1,0,0,1,3,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0,1,2,1,2,2,0,0,0,2,1,0,0,1,0,1,0,1,0,0,1,2,0,2,0,0,0,1,1,0,0,0,1,1,0,0,2,0,0,1,1,1,0,0,1,2,1,1,1,1,1,0,0,1,0,0,0,0,0,0,1,0,3,1,1,3,1,0,1,1,0,1,0,1,1,3,0,1,0,0,1,1,1,0,0,1,2,1,2,1,1,0,0,1,2,2,0,0,0,1,1,2,1,0,1,1,1,2,1,0,0,0,1,0,0,1,2,0,0,2,0,0,0,2,0,1,0,0,0,0,1,0,0,0,0,1,0,2,0,0,0,1,0,3,1,0,1,0,2,0,1,2,0,0,0,0,2,1,1,1,2,0,0,0,0,2,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,0,0,0,3,2,0,0,0,1,0,2,0,1,1,1,1,0,0,0,1,0,0,1,2,0,2,2,0,1,1,1,1,0,1,1,1,0,0,2,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,1,0};
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
{
if(a==0) break;
printf("%d\n",s[a]);
}
return 0;
}