#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long int
#define ld long double
#define all(x) x.begin(), x.end()
#define sortall(x) sort(all(x))
#define endl '\n'
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
template<class T>
void printC (T Collection)
{
for (auto&i:Collection)
cout << i << "\n";
// cout << '\n';
}
/*
* Think twice, code once
* Think of different approaches to tackle a problem: write them down.
* Think of different views of the problem. don't look from only one side.
* don't get stuck in one approach.
* common mistakes: - over_flow
* - out_of_bound index
* - infinite loop
* - corner cases
* - duplication counting.
*/
set<int> factors(const int n)
{
set<int> F;
for(int i = 1; i * i <= n; ++i)
if (n % i == 0)
F.insert(i), F.insert(n/i);
return F;
}
bool isPrime(const int n)
{
if (n == 2) return true;
if (n <= 1 || n % 2 == 0) return false;
for (int i = 3; i <= n; i += 2)
if (n % i == 0)
return false;
return true;
}
bool tenfa3(int n)
{
int cnt = 0;
for (int i = 2; i <= n; ++i)
{
bool flag = true;
while (n % i == 0)
{
n/=i;
if (flag)
{
cnt++;
flag = false;
}
if (cnt > 1)
return false;
}
}
if (n > 1) cnt++;
return cnt == 1;
}
void solve()
{
int n; cin >> n;
if (isPrime(n))
{
cout << 1;
return;
}
set<int> F(factors(n));
F.erase(1);
// printC(F);
int cnt = 0;
for (auto&i:F)
{
if (n % i == 0 && (isPrime(i) || tenfa3(i)))
{
n/=i;
cnt++;
}
}
cout << cnt;
}
int32_t main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
freopen("Errors.txt", "w", stderr);
#endif
fast
int t = 1;
// cin >> t;
while (t--)
{
solve();
if (t) cout << '\n';
}
cout << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgaW50IGxvbmcgbG9uZyBpbnQKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSBzb3J0YWxsKHgpIHNvcnQoYWxsKHgpKQojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwp0ZW1wbGF0ZTxjbGFzcyBUPgp2b2lkIHByaW50QyAoVCBDb2xsZWN0aW9uKQp7CiAgICBmb3IgKGF1dG8maTpDb2xsZWN0aW9uKQogICAgICAgIGNvdXQgPDwgaSA8PCAiXG4iOwogICAgLy8gY291dCA8PCAnXG4nOwp9CgovKgogKiBUaGluayB0d2ljZSwgY29kZSBvbmNlCiAqIFRoaW5rIG9mIGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIHRhY2tsZSBhIHByb2JsZW06IHdyaXRlIHRoZW0gZG93bi4KICogVGhpbmsgb2YgZGlmZmVyZW50IHZpZXdzIG9mIHRoZSBwcm9ibGVtLiBkb24ndCBsb29rIGZyb20gb25seSBvbmUgc2lkZS4KICogZG9uJ3QgZ2V0IHN0dWNrIGluIG9uZSBhcHByb2FjaC4KICogY29tbW9uIG1pc3Rha2VzOiAtIG92ZXJfZmxvdwogKiAgICAgICAgICAgICAgICAgIC0gb3V0X29mX2JvdW5kIGluZGV4CiAqICAgICAgICAgICAgICAgICAgLSBpbmZpbml0ZSBsb29wCiAqICAgICAgICAgICAgICAgICAgLSBjb3JuZXIgY2FzZXMKICogICAgICAgICAgICAgICAgICAtIGR1cGxpY2F0aW9uIGNvdW50aW5nLgoqLwoKc2V0PGludD4gZmFjdG9ycyhjb25zdCBpbnQgbikKewogICAgc2V0PGludD4gRjsKICAgIGZvcihpbnQgaSA9IDE7IGkgKiBpIDw9IG47ICsraSkKICAgICAgICBpZiAobiAlIGkgPT0gMCkKICAgICAgICAgICAgRi5pbnNlcnQoaSksIEYuaW5zZXJ0KG4vaSk7CiAgICByZXR1cm4gRjsKfQoKYm9vbCBpc1ByaW1lKGNvbnN0IGludCBuKQp7CiAgICBpZiAobiA9PSAyKSByZXR1cm4gdHJ1ZTsKICAgIGlmIChuIDw9IDEgfHwgbiAlIDIgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgZm9yIChpbnQgaSA9IDM7IGkgPD0gbjsgaSArPSAyKQogICAgICAgIGlmIChuICUgaSA9PSAwKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gdHJ1ZTsKfQoKYm9vbCB0ZW5mYTMoaW50IG4pCnsKICAgIGludCBjbnQgPSAwOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgKytpKQogICAgewogICAgICAgIGJvb2wgZmxhZyA9IHRydWU7CiAgICAgICAgd2hpbGUgKG4gJSBpID09IDApCiAgICAgICAgewogICAgICAgICAgICBuLz1pOwogICAgICAgICAgICBpZiAoZmxhZykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNudCA+IDEpCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQogICAgaWYgKG4gPiAxKSBjbnQrKzsKICAgIHJldHVybiBjbnQgPT0gMTsKfQoKdm9pZCBzb2x2ZSgpCnsKICAgIGludCBuOyBjaW4gPj4gbjsKICAgIGlmIChpc1ByaW1lKG4pKQogICAgewogICAgICAgIGNvdXQgPDwgMTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBzZXQ8aW50PiBGKGZhY3RvcnMobikpOwogICAgRi5lcmFzZSgxKTsKICAgIC8vIHByaW50QyhGKTsKICAgIGludCBjbnQgPSAwOwogICAgZm9yIChhdXRvJmk6RikKICAgIHsKICAgICAgICBpZiAobiAlIGkgPT0gMCAmJiAoaXNQcmltZShpKSB8fCB0ZW5mYTMoaSkpKQogICAgICAgIHsKICAgICAgICAgICAgbi89aTsKICAgICAgICAgICAgY250Kys7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBjbnQ7Cn0KCmludDMyX3QgbWFpbigpCnsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIGZyZW9wZW4oIkVycm9ycy50eHQiLCAidyIsIHN0ZGVycik7CiNlbmRpZgogICAgZmFzdAogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKQogICAgewogICAgICAgIHNvbHZlKCk7CiAgICAgICAgaWYgKHQpIGNvdXQgPDwgJ1xuJzsKICAgIH0KICAgIGNvdXQgPDwgJ1xuJzsKICAgIHJldHVybiAwOwp9