#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
const int Max = ( 1 << 20 ) + 5;
long long len[Max],hash[Max];
int n;
void pre( )
{
for( int i = 1; i <= Max / 2; ++i )
{
for( int j = i + i; j < Max; j += i )
{
if( len[i] + 1 > len[j] )
{
len[j] = len[i] + 1;
if( hash[i] == 0 )
hash[j] = 1;
else
hash[j] = hash[i];//if( j == 100 )
// printf( " len = %I64d %d hash = %I64dn",len[j],i,hash[j] );
}
else if( len[i] + 1 == len[j] )
{
hash[j] += hash[i];
}
}//printf( "*" );
}
}
int main( )
{
//freopen( "1.in","r",stdin );
//freopen( "1.out","w",stdout );
pre( );
while( scanf( "%d",&n ) == 1 )
printf( "%I64d %I64dn",len[n],hash[n] );
//system( "pause" );
return 0;
}