1 #include<cstdio>
2 #include<cstdlib>
3 using namespace std;
4
5 #define maxn 1010
6 int n,tot,prime[maxn]; long long f[maxn][maxn],ans; bool exist[maxn];
7
8 inline void find()
9 {
10 for (int i = 2;i <= n;++i)
11 if (!exist[i])
12 {
13 prime[++tot] = i;
14 for (int j = i*i;j <= n;j += i) exist[j] = true;
15 }
16 }
17
18 inline void dp()
19 {
20 f[0][0] = 1;
21 for (int i = 1;i <= tot;++i)
22 {
23 for (int j = 0;j <= n;++j) f[i][j] = f[i-1][j];
24 for (int j = prime[i];j <= n;j *= prime[i])
25 {
26 for (int k = 0;k + j <= n;++k)
27 f[i][k+j] += f[i-1][k];
28 }
29 }
30 for (int i = 0;i <= n;++i) ans += f[tot][i];
31 }
32
33 int main()
34 {
35 freopen("1025.in","r",stdin);
36 freopen("1025.out","w",stdout);
37 scanf("%d",&n);
38 find();
39 dp();
40 printf("%lld",ans);
41 fclose(stdin); fclose(stdout);
42 return 0;
43 }