#include <bits/stdc++.h>
using namespace std;
map<int, int> hold;
void primeFactors(int n) {
  while (n % 2 == 0) {
    hold[2]++;
    n = n / 2;
  }
  for (int i = 3; i <= sqrt(n); i = i + 2) {
    while (n % i == 0) {
      if (i > 1) hold[i]++;
      n = n / i;
    }
  }
  if (n > 1) hold[n]++;
}
int main() {
  int n;
  cin >> n;
  if (n == 1)
    cout << 1 << " " << 0 << endl;
  else {
    primeFactors(n);
    int m = 0, s = 1;
    for (auto t = hold.begin(); t != hold.end(); t++) {
      m = max(m, (t->second));
      s *= (t->first);
    }
    int curr = (ceil(log2(m))) + 1;
    int temp = m;
    while (m % 2 == 0) m /= 2;
    if (m == 1) {
      bool flag = true;
      for (auto t = hold.begin(); t != hold.end(); t++)
        if (t->second != temp) {
          flag = false;
          break;
        }
      if (flag) curr--;
    }
    cout << s << " " << curr << endl;
  }
}
