rendered paste body/* TLE test 19
check my prime sieve !!
*/
#include<iostream.h>
#include<math.h>
#define MAX 2000005
#define LOG(a) (log10(a)/log10(2))
long P[MAX],N,a[MAX];
void prime(long n)
{
long i,j;
for(i=1;i<=n;i++)
a[i] = i;
for(i=2;i<=n;i++)
{
if(a[i]==0)
continue;
for(j=2;i*j<=n;j++)
a[i*j] = 0;
}
}
int main()
{
long i,j,sum = 0,val;
cin >> N;
prime(N);
for(i=2;i<=N;i++)
{
if(a[i]!=0)
P[i] = i-1;
else
{
P[i] = i;
for(j=i-1;j>=2;j--)
{
if(a[j]==0)
continue;
if(i%j!=0)
continue;
P[i] /= j;
P[i] *= (j-1);
}
}
sum += P[i];
}
/*for(i = 1;i<=N;i++)
cout << P[i] << " ";
cout<<"Sum is "<<sum << "\n";*/
val = (long) LOG(sum);
if(val!=0)
val++;
cout<< val << "\n";
return 0;
}