8587340257
 9
 81
 27
 1408514752349
 25
 49380563
 266418
 319757451841
 6599669076000
 8
 1000000000000
 30971726
 274875809788
 64
 34280152201
 236
 472670214391
 7938986881993
 44
 4
 388
 2
 802241960524
 3047527844089
 5
 12
 614125
 1716443237161
 48855707
 99
 9999925100701
 5839252225
 3
 50
 1307514188557
 9999926826034
 1468526771489
 2975
 8110708459517
 401120980262
 5138168457911
 1245373417369
 128
 16
 2000000014
 445538663413
 57461344602
 324
 7420738134810

1
9409 2 1
9 1
9 1
72361 2 1
289 1
6 1
289 1
4 1
4 1
4 2 1
4 1
4 2 1
4 1
23020027 1
378028993 1
4 2 1
4 1
0 1
4 2 1
0 1
4 1
25 1
5329 1
2603 1
9 1
0 1
25 1
0 1
10 1
39283 2 1
613783 1
25 2 2 2 1
908209 1
4 1
4 2 1
0 1
6 1
4 1
6
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > decomposition(long long int n) {
  vector<pair<int, int> > factors;
  for (long long int i = 2; i * i <= n; i++)
    if (n % i == 0) {
      int t = 0;
      while (n % i == 0) {
        n /= i;
        t++;
      }
      factors.push_back(pair<int, int>(i, t));
    }
  if (n != 1) factors.push_back(pair<int, int>(n, 1));
  return factors;
}
int main() {
  long long int n;
  cin >> n;
  vector<pair<int, int> > factors = decomposition(n);
  int s = factors.size();
  if (s == 0 || (s == 1 && factors[0].second == 1))
    cout << 1 << endl << 0 << endl;
  else if ((s == 1 && factors[0].second == 2) ||
           (s == 2 && factors[0].second == 1 && factors[1].second == 1))
    cout << 2 << endl;
  else
    cout << 1 << endl << factors[0].first * factors[1].first << endl;
}
