#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  map<int, int> cnt;
  int n = 0;
  cin >> n;
  if (n == 1) {
    cout << "1 0";
    return 0;
  }
  for (int i = 2; i * i <= n; i++)
    while (n % i == 0) {
      cnt[i]++;
      n /= i;
    }
  if (n != 1) cnt[n]++;
  int ans = 0, ansx = 1;
  bool toadd = false;
  for (auto& p : cnt) {
    ansx *= p.first;
    int cur = 0;
    for (int i = 0;; i++)
      if ((1 << i) >= p.second) {
        ans = max(ans, i);
        break;
      }
  }
  for (auto& p : cnt) toadd |= (1 << ans) != p.second;
  cout << ansx << ' ' << ans + toadd << endl;
  return 0;
}
