#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5;
int p[maxn], c[maxn];
int len;
int divide(int n) {
  int cnt = 0;
  for (int i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      p[++cnt] = i;
      c[cnt] = 0;
      while (n % i == 0) {
        n /= i;
        c[cnt]++;
      }
    }
  }
  if (n > 1) {
    p[++cnt] = n;
    c[cnt] = 1;
  }
  len = cnt;
  int ans = 1;
  for (int i = 1; i <= cnt; i++) ans *= p[i];
  return ans;
}
int main() {
  len = 0;
  int q = 1, aa[32] = {0};
  aa[0] = 1;
  for (int i = 1; i < 32; i++) {
    q *= 2;
    aa[i] = q;
  }
  memset(p, 0, sizeof(p));
  memset(c, 0, sizeof(c));
  int n;
  scanf("%d", &n);
  int ans1 = divide(n);
  int ans2 = 0;
  sort(c + 1, c + 1 + len);
  int mm = c[len], index = 0;
  for (int i = 1; i < 32; i++) {
    if (aa[i] >= mm) {
      index = i;
      break;
    }
  }
  ans2 = index;
  if (mm != c[1]) index++;
  if (aa[index] != mm) ans2++;
  if (ans1 == n) ans2 = 0;
  cout << ans1 << " " << ans2 << endl;
  return 0;
}
