#include <bits/stdc++.h>
using namespace std;
int X[] = {0, 1, 0, -1};
int Y[] = {-1, 0, 1, 0};
int KX[8] = {2, 1, -1, -2, -2, -1, 1, 2};
int KY[8] = {1, 2, 2, 1, -1, -2, -2, -1};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long int n, x, y, c, ans = 0, t;
  string s, s1, s2 = "";
  long long int a[100000], b[100000];
  cin >> n;
  if (n == 1) {
    cout << 1 << " " << 0 << "\n";
    return 0;
  }
  bool f = true;
  for (int i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      f = false;
      break;
    }
  }
  if (f) {
    cout << n << " " << 0 << "\n";
    return 0;
  }
  int j = 0;
  x = n;
  long long int ii;
  for (ii = 2; ii * ii <= n; ii++) {
    if (n % ii == 0) {
      int p = 0;
      while (n % ii == 0) {
        p++;
        n /= ii;
      }
      a[j] = p;
      b[j] = ii;
      j++;
    }
  }
  if (n > 1) {
    a[j] = 1;
    b[j] = n;
    j++;
  }
  bool ff = true;
  long long int mx = a[0];
  for (int i = 0; i < j; i++) {
    if (ff && a[i] != mx) {
      ff = false;
    }
    mx = max(mx, a[i]);
  }
  int k = 1;
  while (k < mx) {
    k = k * 2;
    ans++;
  }
  if (k != mx || ff == false) ans++;
  long long int ans2 = 1;
  for (int i = 0; i < j; i++) {
    ans2 = ans2 * b[i];
  }
  cout << ans2 << " " << ans << "\n";
  return 0;
}
