#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
long long q;
const int n=1e7+1;
int check[n],prime[n/3],top,gs,cc[114514],ans=1;
void ola(int m){
for(int i=2;i<=m;i++){
if(!check[i])prime[++top]=i;
for(int j=1;j<=top&&prime[j]*i<=m;j++){
check[i*prime[j]]=prime[j];
if(i%prime[j]==0)break;
}
}
}
signed main(){
cin>>q;
ola(n);
long long p=q;
for(int i=1;i<=top&&p!=1;i++){
while(p%prime[i]==0&&p!=prime[i]){
p/=prime[i];
cc[++gs]=prime[i];
if(gs<=2)ans*=cc[gs];
}
}
if(p>1)cc[++gs]=p;
if(gs==2){
printf("2\n");
}else{
if(gs>1){
printf("1\n%lld\n",cc[1]*cc[2]);
}else printf("1\n0\n");
}
return 0;
}