#include using namespace std; //==================================================== bool IsPrime[10000000 + 5] = {}; //==================================================== void init(long long N_max) { IsPrime[0] = true; IsPrime[1] = true; for (long long l = 2; l <= N_max ; l++) { if (!IsPrime[l]) { for (long long k = l * l ; k <= N_max ; k += l) { IsPrime[k] = true; } } } } //==================================================== int main() { #ifndef ONLINE_JUDGE freopen ("input.txt" , "r" , stdin); freopen ("output.txt" , "w" , stdout); #endif // ONLINE_JUDGE ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n,i = 0,s = 0,p = 0,temp; bool flag = true; cin >> n ; temp = n; init((long long) sqrt(n)); while (flag) { flag = false; for (i = 2 ; i <= sqrt(temp) ; i++) { if ((!IsPrime[i]) && (temp % i == 0)) { temp = temp / i; flag = true; if (i&1) { p++; } else { s++; } } } if (!flag) { if (temp != 1) { if (temp&1) { p++; } else { s++; } } } } cout << s << '\n' << p; return 0; }