#include <iostream>
#include <vector>
#include <cmath>
#define LL long long
#define MAXN 1000003
using namespace std;
bool is_prime[MAXN] = {false};
vector<LL> primes;
void sieve_eratosthenes()
{
for(int i = 0; i < MAXN; i++)
is_prime[i] = true;
is_prime[0]=false;
is_prime[1] = false;
for(int i = 2; i*i <= MAXN; i++)
{
if(is_prime[i])
{
for(int j = 2*i; j <= MAXN; j += i)
{
is_prime[j] = false;
}
}
}
for(int i = 2; i < MAXN; i++)
if(is_prime[i])
primes.push_back(i);
}
inline LL multiply(LL a, LL b, const LL &m)
{
a %= m, b %= m;
long double res = a;res = b;
LL c = (LL)(res/m);
a = b;
a -= c*m;
a %= m;
if(a < 0)
a+= m;
return a;
}
inline LL power(LL a, LL b, const LL &m)
{
LL ans = 1;
while(b)
{
if(b & 1)
{
ans = multiply(ans, a, m);
}
a = multiply(a, a, m);
b >>= 1;
}
return ans;
}
// Returns true if p is prime
inline bool Miller(LL p)
{
if(p < 2)
return false;
if(p != 2 && !(p&1))
return false;
int cnt = 0;
LL s = p-1;
while(!(s&1))
{
s /= 2;
cnt++;
}
LL accuracy = 2, m;
for(int i = 0; i < accuracy; i++)
{
LL a = rand() % (p-1) + 1;
m = p;
LL x = power(a, s, m);
if(x == 1 || x == p-1)
continue;
int flag = 0;
for(int i = 1; i < cnt; i++)
{
x = multiply(x, x, m);
if(x == 1)
return false;
if(x == p-1)
{
flag = 1;
break;
}
}
if(flag)
continue;
return false;
}
return true;
}
LL count_divisors(LL n)
{
LL ans = 1;
int sze=primes.size();
for(int i=0;i<sze;i++)
{
LL p=primes[i];
if(p*p*p > n)
break;
LL count = 1;
while(n % p == 0)
{
n /= p;
count++;
}
ans = ans*count; //anscount to ans*count
}
LL sq = sqrt(double(n));
if(Miller(n))
{
ans = ans*2; // ans2 to ans*2
}
else if(sq*sq == n && Miller(sq)) // sqsq to sq*sq
{
ans = 3;
}
else if(n != 1)
{
ans *= 4;
}
return ans;
}
int main()
{
sieve_eratosthenes();
LL n;
cin >> n;
cout << count_divisors(n) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CiNkZWZpbmUgTEwgbG9uZyBsb25nCiNkZWZpbmUgTUFYTiAxMDAwMDAzCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzX3ByaW1lW01BWE5dID0ge2ZhbHNlfTsKdmVjdG9yPExMPiBwcmltZXM7Cgp2b2lkIHNpZXZlX2VyYXRvc3RoZW5lcygpCnsKICBmb3IoaW50IGkgPSAwOyBpIDwgTUFYTjsgaSsrKQogICAgICBpc19wcmltZVtpXSA9IHRydWU7CiAgaXNfcHJpbWVbMF09ZmFsc2U7CiAgaXNfcHJpbWVbMV0gPSBmYWxzZTsKICBmb3IoaW50IGkgPSAyOyBpKmkgPD0gTUFYTjsgaSsrKQogIHsKICAgIGlmKGlzX3ByaW1lW2ldKQogICAgewogICAgICBmb3IoaW50IGogPSAyKmk7IGogPD0gTUFYTjsgaiArPSBpKQogICAgICB7CiAgICAgICAgaXNfcHJpbWVbal0gPSBmYWxzZTsKICAgICAgfQogICAgfQogIH0KICBmb3IoaW50IGkgPSAyOyBpIDwgTUFYTjsgaSsrKQogICAgICBpZihpc19wcmltZVtpXSkKICAgICAgICBwcmltZXMucHVzaF9iYWNrKGkpOwp9CgppbmxpbmUgTEwgbXVsdGlwbHkoTEwgYSwgTEwgYiwgY29uc3QgTEwgJm0pCnsKICBhICU9IG0sIGIgJT0gbTsKICBsb25nIGRvdWJsZSByZXMgPSBhO3JlcyA9IGI7CiAgTEwgYyA9IChMTCkocmVzL20pOwogIGEgPSBiOwogIGEgLT0gYyptOwogIGEgJT0gbTsKICBpZihhIDwgMCkKICAgIGErPSBtOwpyZXR1cm4gYTsKfQoKaW5saW5lIExMIHBvd2VyKExMIGEsIExMIGIsIGNvbnN0IExMICZtKQp7CiAgTEwgYW5zID0gMTsKICB3aGlsZShiKQogIHsKICAgIGlmKGIgJiAxKQogICAgewogICAgICBhbnMgPSBtdWx0aXBseShhbnMsIGEsIG0pOwogICAgfQogICAgYSA9IG11bHRpcGx5KGEsIGEsIG0pOwogICAgYiA+Pj0gMTsKICB9CiAgcmV0dXJuIGFuczsKfQoKLy8gUmV0dXJucyB0cnVlIGlmIHAgaXMgcHJpbWUKaW5saW5lIGJvb2wgTWlsbGVyKExMIHApCnsKICBpZihwIDwgMikKICAgIHJldHVybiBmYWxzZTsKICBpZihwICE9IDIgJiYgIShwJjEpKQogICAgcmV0dXJuIGZhbHNlOwogIGludCBjbnQgPSAwOwogIExMIHMgPSBwLTE7CiAgd2hpbGUoIShzJjEpKQogIHsKICAgIHMgLz0gMjsKICAgIGNudCsrOwogIH0KICBMTCBhY2N1cmFjeSA9IDIsIG07CiAgZm9yKGludCBpID0gMDsgaSA8IGFjY3VyYWN5OyBpKyspCiAgewogICAgTEwgYSA9IHJhbmQoKSAlIChwLTEpICsgMTsKICAgIG0gPSBwOwogICAgTEwgeCA9IHBvd2VyKGEsIHMsIG0pOwogICAgaWYoeCA9PSAxIHx8IHggPT0gcC0xKQogICAgICBjb250aW51ZTsKICAgIGludCBmbGFnID0gMDsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBjbnQ7IGkrKykKICAgIHsKICAgICAgeCA9IG11bHRpcGx5KHgsIHgsIG0pOwogICAgICBpZih4ID09IDEpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICBpZih4ID09IHAtMSkKICAgICAgewogICAgICAgIGZsYWcgPSAxOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgICAgIGlmKGZsYWcpCiAgICAgICAgY29udGludWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgpMTCBjb3VudF9kaXZpc29ycyhMTCBuKQp7CiAgTEwgYW5zID0gMTsKICBpbnQgc3plPXByaW1lcy5zaXplKCk7CiAgZm9yKGludCBpPTA7aTxzemU7aSsrKQogICAgewogICAgICBMTCBwPXByaW1lc1tpXTsKICAgICAgaWYocCpwKnAgPiBuKQogICAgICAgIGJyZWFrOwogICAgICBMTCBjb3VudCA9IDE7CiAgICAgIHdoaWxlKG4gJSBwID09IDApCiAgICAgIHsKICAgICAgICBuIC89IHA7CiAgICAgICAgY291bnQrKzsKICAgICAgfQogICAgICBhbnMgPSBhbnMqY291bnQ7IC8vYW5zY291bnQgdG8gYW5zKmNvdW50CiAgICB9CiAgTEwgc3EgPSBzcXJ0KGRvdWJsZShuKSk7CiAgaWYoTWlsbGVyKG4pKQogIHsKICAgIGFucyA9IGFucyoyOyAvLyBhbnMyIHRvIGFucyoyCiAgfQogIGVsc2UgaWYoc3Eqc3EgPT0gbiAmJiBNaWxsZXIoc3EpKSAvLyBzcXNxIHRvIHNxKnNxCiAgewogIGFucyA9IDM7CiAgfQogIGVsc2UgaWYobiAhPSAxKQogIHsKICBhbnMgKj0gNDsKICB9CiAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKQp7CiAgc2lldmVfZXJhdG9zdGhlbmVzKCk7CiAgTEwgbjsKICBjaW4gPj4gbjsKICBjb3V0IDw8IGNvdW50X2Rpdmlzb3JzKG4pIDw8IGVuZGw7CiAgcmV0dXJuIDA7Cn0K