Cod sursa(job #119107)
#include<cstdio>
#define Max 1000000
char p[Max];
int x[100000],nr,n;
long long rez;
void ciur()
{
int i,j;
x[nr++]=2;
for(i=3;i<=n;i+=2)
if(p[i]==0)
{
x[nr++]=i;
for(j=i*i;j<=n;j+=2*i)
p[j]=1;
}
}
void totient()
{
double tot;
int i,j,k;
for(i=2;i<=n;i++)
{
for(tot=(double)i,k=i,j=0;j<nr&&k>1;j++)
if(k%x[j]==0)
{
tot*=(1-1/(double)x[j]);
while(k%x[j]==0)
k/=x[j];
}
rez+=(long long)tot;
}
rez=2*rez+1;
}
int main()
{
freopen("fractii.in","r",stdin);
scanf("%d",&n);
ciur();
totient();
freopen("froactii.out","w",stdout);
printf("%lld\n",rez);
return 0;
}