#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> prime, lpf;
void sieve(int n)
{
prime.assign(1, 2);
lpf.assign(n + 1, 2);
for (int x = 3; x <= n; x += 2)
{
if (lpf[x] == 2) prime.push_back(lpf[x] = x);
for (int i = 0; i < prime.size() && prime[i] <= lpf[x] && prime[i] * x <= n; ++i)
lpf[prime[i] * x] = prime[i];
}
}
ll addMOD(ll a, ll b, const ll MOD)
{
return (a + b) % MOD;
}
ll mulMOD(ll a, ll b, const ll MOD)
{
// if (double(a) * b <= 1e18) return (a * b) % MOD;
ll res = 0;
for (a %= MOD; b > 0; a <<= 1, b >>= 1)
{
if (a >= MOD) a -= MOD;
if (b & 1)
{
res += a;
if (res >= MOD) res -= MOD;
}
}
return res;
}
ll powMOD(ll x, ll n, const ll MOD)
{
ll res = 1;
for (; n > 0; n >>= 1)
{
if (n & 1) res = mulMOD(res, x, MOD);
x = mulMOD(x, x, MOD);
}
return res;
}
bool mr_test(ll n, int a, ll d, int s)
{
ll x = powMOD(a, d, n);
if (x == 1 || x == n - 1) return false;
for (int r = 1; r < s; ++r)
{
x = mulMOD(x, x, n);
if (x == n - 1) return false;
}
return true;
}
bool miller_rabin(ll n, int k = 5)
{
if (n < 4) return n == 2 || n == 3;
if (n % 2 == 0 || n % 3 == 0) return false;
int s = __builtin_ctz(n - 1);
ll d = (n - 1) >> s;
for (int it = 1; it <= 5; ++it)
{
int a = 2 + rand() % (n - 3);
if (mr_test(n, a, d, s)) return false;
}
return true;
}
bool isPrime(ll n)
{
if (n < 2) return false;
if (n < lpf.size()) return lpf[n] == n;
return miller_rabin(n);
}
ll any_divisor_of(ll n)
{
if (n <= 1) return 1;
if (n < lpf.size()) return lpf[n];
if (isPrime(n)) return n;
ll d = n;
for (ll c = 2; d == n; ++c)
{
ll x = 2, y = 2, i = 2, k = 2;
while (true)
{
x = (mulMOD(x, x, n) + c);
if (x >= n) x -= n;
d = __gcd(abs(x - y), n);
if (d > 1 && n % d == 0) break;
if (i++ == k) y = x, k <<= 1;
}
}
return d;
}
bool isSquarePrime(ll n)
{
ll t = round(sqrt(n));
return (t * t == n && isPrime(t));
}
bool isCubePrime(ll n)
{
ll t = round(cbrt(n));
return (t * t * t == n && isPrime(t));
}
bool isSemiPrime(ll n)
{
ll d = any_divisor_of(n);
return isPrime(d) && isPrime(n / d);
}
bool isSphenicPrime(ll n)
{
ll p = any_divisor_of(n); n /= p;
if (isPrime(n)) swap(p, n);
ll q = any_divisor_of(n); n /= q;
return (p != q) && (q != n) && (n != p) && isPrime(p) && isPrime(q) && isPrime(n);
}
ll d(ll n)
{
int t = sqrt(sqrt(n)) + 1;
sieve(t);
ll res = 1;
for (int p : prime)
{
if (1LL * p * p * p * p > n) break;
if (n % p == 0)
{
int f = 0;
do ++f; while ((n /= p) % p == 0);
res *= (f + 1);
}
}
if (n == 1) return res;
if (isPrime(n)) return res * 2;
if (isSquarePrime(n)) return res * 3;
if (isSemiPrime(n)) return res * 4;
if (isCubePrime(n)) return res * 4;
if (isSphenicPrime(n)) return res * 8;
return res * 6;
}
int main()
{
srand(time(NULL));
ll n;
cin >> n;
cout << d(n);
return 0;
}
/// N = X * Y
/// K = N^(1/4)
/// X <= K
///
/// for a, b, c distint prime
/// > Y = a
///
/// > Y = a^2
/// > Y = a * b
///
/// > Y = a^3
/// > Y = a^2 * b
/// > Y = a * b * c
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7Cgp2ZWN0b3I8aW50PiBwcmltZSwgbHBmOwp2b2lkIHNpZXZlKGludCBuKQp7CiAgICBwcmltZS5hc3NpZ24oMSwgMik7CiAgICBscGYuYXNzaWduKG4gKyAxLCAyKTsKCiAgICBmb3IgKGludCB4ID0gMzsgeCA8PSBuOyB4ICs9IDIpCiAgICB7CiAgICAgICAgaWYgKGxwZlt4XSA9PSAyKSBwcmltZS5wdXNoX2JhY2sobHBmW3hdID0geCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmltZS5zaXplKCkgJiYgcHJpbWVbaV0gPD0gbHBmW3hdICYmIHByaW1lW2ldICogeCA8PSBuOyArK2kpCiAgICAgICAgICAgIGxwZltwcmltZVtpXSAqIHhdID0gcHJpbWVbaV07CiAgICB9Cn0KCmxsIGFkZE1PRChsbCBhLCBsbCBiLCBjb25zdCBsbCBNT0QpCnsKICAgIHJldHVybiAoYSArIGIpICUgTU9EOwp9CgpsbCBtdWxNT0QobGwgYSwgbGwgYiwgY29uc3QgbGwgTU9EKQp7CiAgICAvLyBpZiAoZG91YmxlKGEpICogYiA8PSAxZTE4KSByZXR1cm4gKGEgKiBiKSAlIE1PRDsKICAgIAogICAgbGwgcmVzID0gMDsKICAgIGZvciAoYSAlPSBNT0Q7IGIgPiAwOyBhIDw8PSAxLCBiID4+PSAxKQogICAgewogICAgICAgIGlmIChhID49IE1PRCkgYSAtPSBNT0Q7CiAgICAgICAgaWYgKGIgJiAxKSAKICAgICAgICB7CiAgICAgICAgICAgIHJlcyArPSBhOwogICAgICAgICAgICBpZiAocmVzID49IE1PRCkgcmVzIC09IE1PRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHJlczsKfQoKbGwgcG93TU9EKGxsIHgsIGxsIG4sIGNvbnN0IGxsIE1PRCkKewogICAgbGwgcmVzID0gMTsKICAgIGZvciAoOyBuID4gMDsgbiA+Pj0gMSkKICAgIHsKICAgICAgICBpZiAobiAmIDEpIHJlcyA9IG11bE1PRChyZXMsIHgsIE1PRCk7CiAgICAgICAgeCA9IG11bE1PRCh4LCB4LCBNT0QpOwogICAgfQoKICAgIHJldHVybiByZXM7Cn0KCmJvb2wgbXJfdGVzdChsbCBuLCBpbnQgYSwgbGwgZCwgaW50IHMpCnsKICAgIGxsIHggPSBwb3dNT0QoYSwgZCwgbik7CiAgICBpZiAoeCA9PSAxIHx8IHggPT0gbiAtIDEpIHJldHVybiBmYWxzZTsKCiAgICBmb3IgKGludCByID0gMTsgciA8IHM7ICsrcikKICAgIHsKICAgICAgICB4ID0gbXVsTU9EKHgsIHgsIG4pOwogICAgICAgIGlmICh4ID09IG4gLSAxKSByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgbWlsbGVyX3JhYmluKGxsIG4sIGludCBrID0gNSkKewogICAgaWYgKG4gPCA0KSByZXR1cm4gbiA9PSAyIHx8IG4gPT0gMzsKICAgIGlmIChuICUgMiA9PSAwIHx8IG4gJSAzID09IDApIHJldHVybiBmYWxzZTsKCiAgICBpbnQgcyA9IF9fYnVpbHRpbl9jdHoobiAtIDEpOwogICAgbGwgZCA9IChuIC0gMSkgPj4gczsKICAgIGZvciAoaW50IGl0ID0gMTsgaXQgPD0gNTsgKytpdCkKICAgIHsKICAgICAgICBpbnQgYSA9IDIgKyByYW5kKCkgJSAobiAtIDMpOwogICAgICAgIGlmIChtcl90ZXN0KG4sIGEsIGQsIHMpKSByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgcmV0dXJuIHRydWU7Cn0KCmJvb2wgaXNQcmltZShsbCBuKQp7CiAgICBpZiAobiA8IDIpIHJldHVybiBmYWxzZTsgICAgCiAgICBpZiAobiA8IGxwZi5zaXplKCkpIHJldHVybiBscGZbbl0gPT0gbjsKICAgIHJldHVybiBtaWxsZXJfcmFiaW4obik7Cn0KCmxsIGFueV9kaXZpc29yX29mKGxsIG4pCnsKICAgIGlmIChuIDw9IDEpIHJldHVybiAxOwogICAgaWYgKG4gPCBscGYuc2l6ZSgpKSByZXR1cm4gbHBmW25dOwogICAgaWYgKGlzUHJpbWUobikpIHJldHVybiBuOwoKICAgIGxsIGQgPSBuOwogICAgZm9yIChsbCBjID0gMjsgZCA9PSBuOyArK2MpCiAgICB7ICAgIAogICAgICAgIGxsIHggPSAyLCB5ID0gMiwgaSA9IDIsIGsgPSAyOwogICAgICAgIHdoaWxlICh0cnVlKQogICAgICAgIHsKICAgICAgICAgICAgeCA9IChtdWxNT0QoeCwgeCwgbikgKyBjKTsKICAgICAgICAgICAgaWYgKHggPj0gbikJeCAtPSBuOwogICAgICAgICAgICBkID0gX19nY2QoYWJzKHggLSB5KSwgbik7CiAgICAgICAgICAgIGlmIChkID4gMSAmJiBuICUgZCA9PSAwKSBicmVhazsKICAgICAgICAgICAgaWYgKGkrKyA9PSBrKSB5ID0geCwgayA8PD0gMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGQ7Cn0KCmJvb2wgaXNTcXVhcmVQcmltZShsbCBuKQp7CiAgICBsbCB0ID0gcm91bmQoc3FydChuKSk7CiAgICByZXR1cm4gKHQgKiB0ID09IG4gJiYgaXNQcmltZSh0KSk7Cn0KCmJvb2wgaXNDdWJlUHJpbWUobGwgbikKewogICAgbGwgdCA9IHJvdW5kKGNicnQobikpOwogICAgcmV0dXJuICh0ICogdCAqIHQgPT0gbiAmJiBpc1ByaW1lKHQpKTsKfQoKYm9vbCBpc1NlbWlQcmltZShsbCBuKQp7CiAgICBsbCBkID0gYW55X2Rpdmlzb3Jfb2Yobik7CiAgICByZXR1cm4gaXNQcmltZShkKSAmJiBpc1ByaW1lKG4gLyBkKTsKfQoKYm9vbCBpc1NwaGVuaWNQcmltZShsbCBuKQp7CiAgICBsbCBwID0gYW55X2Rpdmlzb3Jfb2Yobik7ICAgICAgIG4gLz0gcDsKICAgIGlmIChpc1ByaW1lKG4pKSBzd2FwKHAsIG4pOwoKICAgIGxsIHEgPSBhbnlfZGl2aXNvcl9vZihuKTsgICAgICAgbiAvPSBxOwogICAgcmV0dXJuIChwICE9IHEpICYmIChxICE9IG4pICYmIChuICE9IHApICYmIGlzUHJpbWUocCkgJiYgaXNQcmltZShxKSAmJiBpc1ByaW1lKG4pOwp9CgpsbCBkKGxsIG4pCnsgICAKICAgIGludCB0ID0gc3FydChzcXJ0KG4pKSArIDE7CiAgICBzaWV2ZSh0KTsKCiAgICBsbCByZXMgPSAxOwogICAgZm9yIChpbnQgcCA6IHByaW1lKQogICAgewogICAgICAgIGlmICgxTEwgKiBwICogcCAqIHAgKiBwID4gbikgYnJlYWs7CiAgICAgICAgaWYgKG4gJSBwID09IDApCiAgICAgICAgewogICAgICAgICAgICBpbnQgZiA9IDA7CiAgICAgICAgICAgIGRvICsrZjsgd2hpbGUgKChuIC89IHApICUgcCA9PSAwKTsKICAgICAgICAgICAgcmVzICo9IChmICsgMSk7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChuID09IDEpIHJldHVybiByZXM7CiAgICBpZiAoaXNQcmltZShuKSkgcmV0dXJuIHJlcyAqIDI7CiAgICBpZiAoaXNTcXVhcmVQcmltZShuKSkgcmV0dXJuIHJlcyAqIDM7CiAgICBpZiAoaXNTZW1pUHJpbWUobikpIHJldHVybiByZXMgKiA0OwogICAgaWYgKGlzQ3ViZVByaW1lKG4pKSByZXR1cm4gcmVzICogNDsKICAgIGlmIChpc1NwaGVuaWNQcmltZShuKSkgcmV0dXJuIHJlcyAqIDg7CiAgICByZXR1cm4gcmVzICogNjsKfQoKaW50IG1haW4oKQp7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKCiAgICBsbCBuOwogICAgY2luID4+IG47CgogICAgY291dCA8PCBkKG4pOwogICAgcmV0dXJuIDA7Cn0gCgovLy8gTiA9IFggKiBZCi8vLyBLID0gTl4oMS80KQovLy8gWCA8PSBLCi8vLwovLy8gZm9yIGEsIGIsIGMgZGlzdGludCBwcmltZQovLy8gPiBZID0gYQovLy8KLy8vID4gWSA9IGFeMgovLy8gPiBZID0gYSAqIGIKLy8vCi8vLyA+IFkgPSBhXjMKLy8vID4gWSA9IGFeMiAqIGIKLy8vID4gWSA9IGEgKiBiICogYw==