#include <bits/stdc++.h>
using namespace std;
long long cnt = 0;
void solve(int n) {
  if (n == 1) {
    cout << 1 << ' ' << 0;
    return;
  }
  map<int, int> div;
  int d = 2;
  while (n > 1) {
    if (!(n % d)) {
      div[d]++;
      n /= d;
    } else
      d++;
  }
  int mx = 0;
  long long res = 1;
  for (map<int, int>::iterator i = div.begin(); i != div.end(); i++) {
    res *= i->first;
    mx = max(mx, i->second);
  }
  long long step = 1;
  while (step < mx) step *= 2;
  bool flag = true;
  for (map<int, int>::iterator i = div.begin(); i != div.end(); i++)
    if (i->second != step) flag = false;
  int counter;
  if (flag)
    counter = 0;
  else
    counter = 1;
  counter += log2(step);
  cout << res << ' ' << counter;
}
int main() {
  int n;
  cin >> n;
  solve(n);
  return 0;
}
