28237
 13190
 39914
 81367
 8554
 61106
 67448
 39004
 22308
 16054
 71468
 60501
 100
 300
 59632
 90783
 5611
 1000
 69475
 69753
 10
 5
 582
 8
 36961
 5071
 20
 53213
 92775
 28738
 100000
 92280
 37944
 9
 2627
 7
 3

1028306548 224346172 2054738392 8539207488 94344524 4816051228 5867563092 1962150044 641839188 332342852 6587875268 4721174212 12600 115440 4586497300 10630118936 40580456 1286328 6225539588 6275533596 92 8 434692 52 1762017168 33141852 440 3652070664 11101694484 1065137992 12898363344 10983871880 1856988304 64 8885348 28 0
#include <bits/stdc++.h>
const int N = 25000 + 10;
using namespace std;
namespace fast_IO {
int read() {
  register int num = 0;
  register char ch;
  register bool flag = false;
  while ((ch = getchar()) == ' ' || ch == '\n' || ch == '\r')
    ;
  if (ch == '-')
    flag = true;
  else
    num = ch ^ 48;
  while ((ch = getchar()) != ' ' && ch != '\n' && ch != '\r' && ~ch)
    num = (num << 1) + (num << 3) + (ch ^ 48);
  if (flag) return -num;
  return num;
}
void write(register int x) {
  if (x >= 10) write(x / 10);
  putchar(x % 10 ^ 48);
}
};  // namespace fast_IO
int main() {
  register int n = fast_IO::read(), ans = 0;
  register bool flag = false;
  while (n != 1 && (int)sqrt(n) == sqrt(n)) n = sqrt(n), ++ans;
  for (register int i = sqrt(n); i >= 2; --i)
    while (n % (i * i) == 0) ++ans, n /= i, flag = true;
  if (flag) ++ans;
  fast_IO::write(n), putchar(' '), fast_IO::write(ans);
  return 0;
}
