//欧拉函数f(n),1~n与n互质的数的个数
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
const int N=100010;
int primes[N],cnt;
int phi[N];//记录欧拉函数的值
bool st[N];//标记为合数
//1.分解质因数求欧拉函数
void oula(int a)
{
int res=a;
for(int i=2;i<=a/i;i++)
if(a%i==0)
{
res=res/i*(i-1);
while(a%i==0)a/=i;
}
if(a>1)res=res/a*(a-1);//公式f(a)=a*(1-1/i1)*(1-1/i2)*...*...;
cout<<res<<endl;
}
//2.筛法 求1~n每个数欧拉函数的和
void get_eulers(int n)
{
phi[1]=1;
for(int i=2;i<=n;i++)
{
if(!st[i])
{
primes[cnt++]=i;//3.欧拉原理
phi[i]=i-1;
}
for(int j=0;primes[j]<=n/i;j++)//线性筛法
{
st[primes[j]*i]=true;
if(i%primes[j]==0)
{
phi[primes[j]*i]=phi[i]*primes[j];//1.欧拉原理
break;
}
phi[primes[j]*i]=phi[i]*(primes[j]-1);//欧拉原理
}
}
LL res=0;
for(int i=1;i<=n;i++)res+=phi[i];//求和
cout<<res;
}
int main()
{
int n;
cin>>n;
get_eulers(n);
return 0;
}