#include <iostream>
using namespace std ;
bool isPrime(int x)
{
for(int i=1;i*i<=x;i++)
{
if(x%i==0)
{
return false;
}
}
return true ;
}
int main()
{
long long num1[1000],num2[1000] ;
long long n,sum=0,k=1;
long long ans=1 ;
cin>>n ;
for(int e=1;e<=n;e++)
{
ans*=e ;
}
for(int i=1;i*i<=ans;i++)
{
if(ans==1) break ;
else if(isPrime(i))
{
num2[k]=i ;
while(ans%i==0)
{
ans/=i ;
sum++ ;
}
num1[k]=sum ;
sum=0 ;
k++ ;
}
}
for(int j=1;j<=k;j++)
{
cout<<num2[j]<<" "<<num1[j]<<endl ;
}
return 0 ;
}