#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
bool used[N];
int p[N], cnt[N];
int len, n, ans1, ans2, maxcnt, mincnt;
void init() {
  for (int i = 2; i <= n; ++i)
    if (!used[i]) {
      p[++len] = i;
      for (int j = i + i; j <= n; j += i) used[j] = 1;
    }
}
int main() {
  scanf("%d", &n);
  if (n == 1) {
    puts("1 0");
    return 0;
  }
  init();
  ans1 = 1;
  for (int i = 1; i <= len && p[i] <= n; ++i)
    if (n % p[i] == 0) {
      ans1 *= p[i];
      while (n % p[i] == 0) {
        n /= p[i];
        ++cnt[i];
      }
      if (!maxcnt)
        maxcnt = mincnt = cnt[i];
      else {
        maxcnt = max(maxcnt, cnt[i]);
        mincnt = min(mincnt, cnt[i]);
      }
    }
  int tmp = 1, p = 0, two = 0;
  while (tmp < maxcnt) {
    tmp <<= 1;
    ++p;
  }
  if (tmp == maxcnt) two = 1;
  if (two && maxcnt == mincnt)
    ans2 = p;
  else
    ans2 = p + 1;
  printf("%d %d\n", ans1, ans2);
  return 0;
}
