#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  int r, i;
  while (b != 0) {
    r = a % b;
    a = b;
    b = r;
  }
  return a;
}
long long int power(long long int x, long long int y, long long int mod) {
  long long int temp, ty, my;
  if (y == 0) return 1;
  temp = power(x, y / 2, mod);
  ty = (temp % mod) * (temp % mod);
  if (y % 2 == 0) {
    return ty % mod;
  } else {
    my = (x % mod) * (ty % mod);
    return my % mod;
  }
}
long long int maxi(long long int a, long long int b) { return a > b ? a : b; }
long long int mini(long long int a, long long int b) { return a < b ? a : b; }
long long int maxx(long long int a, long long int b, long long int c,
                   long long int d, long long int e) {
  return maxi(maxi(maxi(a, b), maxi(c, d)), e);
}
struct abhi {
  long long int val;
  long long int pos;
};
struct abhi brr[100010];
bool cmp(struct abhi x, struct abhi y) { return x.pos < y.pos; }
char ss[100010];
long long int ar[100100];
long long int b[100100];
vector<pair<int, int> > abhi;
long long int p[4000000];
void sieve(int a, int b) {
  long long int i, j, k;
  memset(p, 0, sizeof(p));
  k = sqrt(b);
  if (a == 1) p[0] = 1;
  for (i = 2; i <= k; i++) {
    j = (a / i) * i;
    if (j < a) j += i;
    for (; j <= b; j += i)
      if (j != i) p[j - a] = 1;
  }
  long long int cnn = 0;
  for (i = 0; i <= (b - a); i++) {
    if (p[i] == 0) cnn++;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  long long int t, m, i, n, fr, a1, a2 = 10000000, r = 1000000000, j, k = 0,
                                    kk = 0;
  sieve(0, 4000000);
  cin >> n;
  k = sqrt(n);
  long long int cn = 0;
  long long int f = 0;
  long long int pr = 1, c1, c2;
  for (i = 2; i <= k; i++) {
    if (n % i == 0) {
      kk++;
      if (p[i] == 0) {
        c1 = i;
        c2 = n / i;
      }
      if (p[i] == 0) {
        cn++;
        if (cn == 1) a1 = i;
        if (cn == 2) a2 = i;
      }
      if (p[i] == 0 && f == 0) {
        long long int ty = i * i;
        if (n % ty == 0) {
          r = ty;
          f = 1;
        }
      }
    }
  }
  long long int c3 = sqrt(c2);
  for (i = 2; i <= c3; i++) {
    if (c2 % i == 0) {
      pr = 0;
      break;
    }
  }
  if (kk == 1 && pr == 1)
    cout << "2\n";
  else {
    if (kk == 0) {
      cout << "1\n";
      cout << "0\n";
    } else {
      cout << "1\n";
      cout << mini(r, a1 * a2) << "\n";
    }
  }
  return 0;
}
