#include <bits/stdc++.h>
using namespace std;
long long pow2[105];
void init() {
  for (int i = 0; i <= 32; i++) pow2[i] = 1ll << i;
}
long long len, p[105], num[105];
void init_n(long long n) {
  len = 0;
  for (long long i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      p[++len] = i;
      num[len] = 0;
    }
    while (n % i == 0) {
      num[len]++;
      n = n / i;
    }
  }
  if (n > 1) {
    p[++len] = n;
    num[len] = 1;
  }
}
long long cal(long long x) {
  for (long long i = 0; i <= 32; i++)
    if (pow2[i] >= x) return i;
  return 0;
}
int main() {
  init();
  long long n;
  cin >> n;
  if (n == 1) {
    cout << 1 << " " << 0 << endl;
    return 0;
  }
  init_n(n);
  long long ans1 = 1;
  for (int i = 1; i <= len; i++) ans1 = ans1 * p[i];
  long long ans2 = 0;
  while (1) {
    bool f = true;
    for (int i = 1; i <= len; i++)
      if (num[i] % 2 != 0) {
        f = false;
        break;
      }
    if (f) {
      for (int i = 1; i <= len; i++) num[i] = num[i] / 2;
      ans2++;
    } else {
      long long res = 0;
      for (int i = 1; i <= len; i++) {
        res = max(res, cal(num[i]));
      }
      if (res == 0) break;
      ans2 = ans2 + res + 1;
      break;
    }
  }
  cout << ans1 << " " << ans2 << endl;
  return 0;
}
