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
from itertools   import *
from collections import *
from operator    import *
from bisect      import *
from fractions   import *

Ii = lambda: map(int, raw_input().split())
Is = lambda: raw_input().split()

def e_sieve(n):
  '''generates primes <=n'''
  sieve = [True]*(n+1)
  sieve[0] = sieve[1] = False
  falses = [False]*(n/2)
  curr = 2
  while curr*curr<=n:
    sieve[curr*2::curr] = falses[:(n/curr)-1]
    curr+=1
    while not sieve[curr]: curr+=1
  return [x for x in xrange(n) if sieve[x]]

primes = e_sieve(3200000)

def factorize(n):
  '''returns a dictionary of prime factorization of n'''
  d = dict()
  for p in primes:
    if p*p>n: break
    power = 0
    while n%p==0:
      power+=1
      n/=p
    if power>0: d[p]=power
    if n==1: return d
  if n>1: d[n]=1
  return d

n = input()
if n==1:
  print 1
  print 0
else:
  f = factorize(n)
  e = list(f.values())
  k = list(f.keys())
  if sum(e)==1:
    print 1
    print 0
  elif sum(e)==2:
    print 2
  else:
    print 1
    if len(k)==1:
      print k[0]*k[0]
    else:
      print k[0]*k[1]