#include <bits/stdc++.h>
using namespace std ;
int const NMAX = 1000010 ;
vector<int> divisors[NMAX] ;
bool is_pirme[NMAX] ;
long long get_ceil(long long f, long long g) {
return ceil(f/(double)g)*g ;
}
int main() {
long long int a, b ;
scanf("%lld", &a) ;
b = a ;
for(int i = 2; i < NMAX; i++) {
is_pirme[i] = true ;
}
for(int i = 2; i < NMAX; i++) {
if(is_pirme[i]) {
for(int j = i+i; j < NMAX; j += i) {
is_pirme[j] = false ;
}
for(long long j = get_ceil(a, i); j <= b; j += i) {
divisors[j-a].push_back(i) ;
}
}
}
long long ans = 0 ;
for(long long i = a; i <= b; i++) {
map<long long, long long> fq ;
long long tmp = i ;
for(int j = 0; j < divisors[i-a].size(); j++) {
int denom = divisors[i-a][j] ;
while(tmp%denom == 0) {
fq[denom]++ ;
tmp /= denom ;
}
}
if(tmp != 1) fq[1]++ ;
int Arr[1000] ;
map<long long, long long>::iterator it = fq.begin();
int ind = 0, flag = 0, index = 0;
while(it != fq.end()) {
if(it->first >= 1)
Arr[index++] = it->second ;
it++ ;
}
long long pro = 1 ;
for(int i = 0; i < index; i++) pro *= (Arr[i]+1) ;
ans = pro ;
}
cout << ans << endl ;
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwoKCmludCBjb25zdCBOTUFYID0gMTAwMDAxMCA7CnZlY3RvcjxpbnQ+IGRpdmlzb3JzW05NQVhdIDsKYm9vbCBpc19waXJtZVtOTUFYXSA7CgoKbG9uZyBsb25nIGdldF9jZWlsKGxvbmcgbG9uZyBmLCBsb25nIGxvbmcgZykgewoJcmV0dXJuIGNlaWwoZi8oZG91YmxlKWcpKmcgOwp9CmludCBtYWluKCkgewoJbG9uZyBsb25nIGludCBhLCBiIDsKCXNjYW5mKCIlbGxkIiwgJmEpIDsKCWIgPSBhIDsKCWZvcihpbnQgaSA9IDI7IGkgPCBOTUFYOyBpKyspIHsKCQlpc19waXJtZVtpXSA9IHRydWUgOwoJfQoJZm9yKGludCBpID0gMjsgaSA8IE5NQVg7IGkrKykgewoJCWlmKGlzX3Bpcm1lW2ldKSB7CgkJCWZvcihpbnQgaiA9IGkraTsgaiA8IE5NQVg7IGogKz0gaSkgewoJCQkJaXNfcGlybWVbal0gPSBmYWxzZSA7CgkJCX0KCQkJZm9yKGxvbmcgbG9uZyBqID0gZ2V0X2NlaWwoYSwgaSk7IGogPD0gYjsgaiArPSBpKSB7CgkJCQlkaXZpc29yc1tqLWFdLnB1c2hfYmFjayhpKSA7CgkJCX0KCQl9Cgl9Cglsb25nIGxvbmcgYW5zID0gMCA7Cglmb3IobG9uZyBsb25nIGkgPSBhOyBpIDw9IGI7IGkrKykgewoJCW1hcDxsb25nIGxvbmcsIGxvbmcgbG9uZz4gZnEgOwoJCWxvbmcgbG9uZyB0bXAgPSBpIDsKCQlmb3IoaW50IGogPSAwOyBqIDwgZGl2aXNvcnNbaS1hXS5zaXplKCk7IGorKykgewoJCQlpbnQgZGVub20gPSBkaXZpc29yc1tpLWFdW2pdIDsKCQkJd2hpbGUodG1wJWRlbm9tID09IDApIHsKCQkJCWZxW2Rlbm9tXSsrIDsKCQkJCXRtcCAvPSBkZW5vbSA7CgkJCX0KCQl9CgkJaWYodG1wICE9IDEpIGZxWzFdKysgOwoJCWludCBBcnJbMTAwMF0gOwogICAgICAgIG1hcDxsb25nIGxvbmcsIGxvbmcgbG9uZz46Oml0ZXJhdG9yIGl0ID0gZnEuYmVnaW4oKTsKICAgICAgICBpbnQgaW5kID0gMCwgZmxhZyA9IDAsIGluZGV4ID0gMDsKICAgICAgICB3aGlsZShpdCAhPSBmcS5lbmQoKSkgewogICAgICAgIAlpZihpdC0+Zmlyc3QgPj0gMSkKICAgICAgICAJQXJyW2luZGV4KytdID0gaXQtPnNlY29uZCA7CiAgICAgICAgCWl0KysgOwogICAgICAgIH0KIAkJbG9uZyBsb25nIHBybyA9IDEgOwogCQlmb3IoaW50IGkgPSAwOyBpIDwgaW5kZXg7IGkrKykgcHJvICo9IChBcnJbaV0rMSkgOyAKIAkJYW5zID0gcHJvIDsKCX0KCWNvdXQgPDwgYW5zIDw8IGVuZGwgOwoJcmV0dXJuIDAgOwp9