#include<stdio.h>
#include<stdlib.h>
#include<math.h>

long long int next(long long int p, long long int* sosu){
	do{
		p++;
	}while(sosu[p-1]==0);
	return p;
}

int main(void){
	long long int n,p=2;
	long long int *sosu;
	
	int z,count=0;
	scanf("%lld",&n);
	
	sosu=(long long int *)malloc(n*sizeof(long long int));
	for(int i=0;i<n;i++){
		sosu[i]=1;
	}
	for(long long int i=2;i<n;i++){
		if(sosu[i-1]==1){
			printf("%lld\n",i);
			for(long long int j=i+1;j<n;j++){
				if(sosu[j]==1&&(j+1)%i==0){
					sosu[j]=0;
				}
			}
		}
	}
	
	do{
		if(n%(long long int)pow(p,z)==0){
			n=n/pow(p,z);
			count+=1;
			z+=1;
			printf("%lld,%d\n",p,z);
		}else{
			p=next(p,sosu);
			z=1;
		}
	}while(p<=n);
	printf("%d",count);
}