#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[1] = false;
for(int i = 2; i*i <= MAXN; i++)
{
if(is_prime[i])
{
for(int j = i*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+CiNkZWZpbmUgTEwgbG9uZyBsb25nCiNkZWZpbmUgTUFYTiAxMDAwMDAzCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzX3ByaW1lW01BWE5dID0ge2ZhbHNlfTsKdmVjdG9yPExMPiBwcmltZXM7Cgp2b2lkIHNpZXZlX2VyYXRvc3RoZW5lcygpCnsKICBmb3IoaW50IGkgPSAwOyBpIDwgTUFYTjsgaSsrKQogICAgICBpc19wcmltZVtpXSA9IHRydWU7CiAgaXNfcHJpbWVbMV0gPSBmYWxzZTsKICBmb3IoaW50IGkgPSAyOyBpKmkgPD0gTUFYTjsgaSsrKQogIHsKICAgIGlmKGlzX3ByaW1lW2ldKQogICAgewogICAgICBmb3IoaW50IGogPSBpKmk7IGogPCBNQVhOOyBqICs9IGkpCiAgICAgIHsKICAgICAgICBpc19wcmltZVtqXSA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQogIGZvcihpbnQgaSA9IDI7IGkgPCBNQVhOOyBpKyspCiAgICAgIGlmKGlzX3ByaW1lW2ldKQogICAgICAgIHByaW1lcy5wdXNoX2JhY2soaSk7Cn0KCmlubGluZSBMTCBtdWx0aXBseShMTCBhLCBMTCBiLCBjb25zdCBMTCAmbSkKewogIGEgJT0gbSwgYiAlPSBtOwogIGxvbmcgZG91YmxlIHJlcyA9IGE7cmVzID0gYjsKICBMTCBjID0gKExMKShyZXMvbSk7CiAgYSA9IGI7CiAgYSAtPSBjKm07CiAgYSAlPSBtOwogIGlmKGEgPCAwKQogICAgYSs9IG07CnJldHVybiBhOwp9CgppbmxpbmUgTEwgcG93ZXIoTEwgYSwgTEwgYiwgY29uc3QgTEwgJm0pCnsKICBMTCBhbnMgPSAxOwogIHdoaWxlKGIpCiAgewogICAgaWYoYiAmIDEpCiAgICB7CiAgICAgIGFucyA9IG11bHRpcGx5KGFucywgYSwgbSk7CiAgICB9CiAgICBhID0gbXVsdGlwbHkoYSwgYSwgbSk7CiAgICBiID4+PSAxOwogIH0KICByZXR1cm4gYW5zOwp9CgovLyBSZXR1cm5zIHRydWUgaWYgcCBpcyBwcmltZQppbmxpbmUgYm9vbCBNaWxsZXIoTEwgcCkKewogIGlmKHAgPCAyKQogICAgcmV0dXJuIGZhbHNlOwogIGlmKHAgIT0gMiAmJiAhKHAmMSkpCiAgICByZXR1cm4gZmFsc2U7CiAgaW50IGNudCA9IDA7CiAgTEwgcyA9IHAtMTsKICB3aGlsZSghKHMmMSkpCiAgewogICAgcyAvPSAyOwogICAgY250Kys7CiAgfQogIExMIGFjY3VyYWN5ID0gMiwgbTsKICBmb3IoaW50IGkgPSAwOyBpIDwgYWNjdXJhY3k7IGkrKykKICB7CiAgICBMTCBhID0gcmFuZCgpICUgKHAtMSkgKyAxOwogICAgbSA9IHA7CiAgICBMTCB4ID0gcG93ZXIoYSwgcywgbSk7CiAgICBpZih4ID09IDEgfHwgeCA9PSBwLTEpCiAgICAgIGNvbnRpbnVlOwogICAgaW50IGZsYWcgPSAwOwogICAgZm9yKGludCBpID0gMTsgaSA8IGNudDsgaSsrKQogICAgewogICAgICB4ID0gbXVsdGlwbHkoeCwgeCwgbSk7CiAgICAgIGlmKHggPT0gMSkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGlmKHggPT0gcC0xKQogICAgICB7CiAgICAgICAgZmxhZyA9IDE7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgICAgaWYoZmxhZykKICAgICAgICBjb250aW51ZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KCkxMIGNvdW50X2Rpdmlzb3JzKExMIG4pCnsKICBMTCBhbnMgPSAxOwogIGludCBzemU9cHJpbWVzLnNpemUoKTsKICBmb3IoaW50IGk9MDtpPHN6ZTtpKyspCiAgICB7CiAgICAgIExMIHA9cHJpbWVzW2ldOwogICAgICBpZihwKnAqcCA+IG4pCiAgICAgICAgYnJlYWs7CiAgICAgIExMIGNvdW50ID0gMTsKICAgICAgd2hpbGUobiAlIHAgPT0gMCkKICAgICAgewogICAgICAgIG4gLz0gcDsKICAgICAgICBjb3VudCsrOwogICAgICB9CiAgICAgIGFucyA9IGFucypjb3VudDsgLy9hbnNjb3VudCB0byBhbnMqY291bnQKICAgIH0KICBMTCBzcSA9IHNxcnQoZG91YmxlKG4pKTsKICBpZihNaWxsZXIobikpCiAgewogICAgYW5zID0gYW5zKjI7IC8vIGFuczIgdG8gYW5zKjIKICB9CiAgZWxzZSBpZihzcSpzcSA9PSBuICYmIE1pbGxlcihzcSkpIC8vIHNxc3EgdG8gc3Eqc3EKICB7CiAgYW5zID0gMzsKICB9CiAgZWxzZSBpZihuICE9IDEpCiAgewogIGFucyAqPSA0OwogIH0KICByZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpCnsKICBzaWV2ZV9lcmF0b3N0aGVuZXMoKTsKICBMTCBuOwogIGNpbiA+PiBuOwogIGNvdXQgPDwgY291bnRfZGl2aXNvcnMobikgPDwgZW5kbDsKICByZXR1cm4gMDsKfQo=