#include<stdio.h>#include<math.h>#include<stdlib.h>#include<time.h>#include<unordered_map>#include<set>#include<bitset>#include<string.h>#include<queue>#include<algorithm>#define ci const int#define iv inline void#define ic inline ci#define ull unsigned long long//#define int unsigned#define int long long#define getchar getchar_unlocked//#define int __int128//#define NN 400//#define N 405#define N 5000000#define M 105#define mod 10007ll#define inf 0x3f3f3f3f//#define inf 0x3f3f3f3f3f3f3f3fllic re();constchargetch();voidpr(ci x);
voidprs(ci x);voidprn(ci x);
iv swp(int&a,int&b){a^=b^=a^=b;}
ic Abs(ci a){return a>0?a:-a;}
//big front small lastiv bfsl(int&a,int&b){a>b?void():swp(a,b);}
ic Max(ci A,ci B){return A>B?A:B;}
iv gma(int&A,ci B){A=Max(A,B);}
ic Min(ci A,ci B){return A<B?A:B;}
iv gmi(int&A,ci B){A=Min(A,B);}
ic gcd(ci a,ci b){return b?gcd(b,a%b):a;}
ic fpow(int a,int b=mod-2,ci md=mod){
int c=1;
while(b){
if(b&1)c=c*a%md;
a=a*a%md,b>>=1;
}return c;
}
iv init(){;}
int a[5000010];
iv work(){
for(int i=1;i<=N;++i){
a[i]+=i<<1|1;
for(int j=i<<1;j<=N;j+=i)
a[j]-=a[i];
}
for(int i=1;i<N;++i)
a[i+1]+=a[i];
prn(a[N]);
}
/*
*/signedmain(){//srand(time(0));//freopen("in.txt","r",stdin);//freopen("gout.txt","w",stdout);//init();for(int T=1||re();T--;)work();
//__builtin_parity(n);//__builtin_popcount(n);
}
voidpri(ci x){if(x>9)pri(x/10);putchar(x%10^48);}
iv pr(ci x){if(x<0)putchar('-'),pri(-x);else pri(x);}
iv prs(ci x){pr(x);putchar(32);}
iv prn(ci x){pr(x);putchar(10);}
constchargetch(){
char c=getchar();
while(!(c>47&&c<58||c>96&&c<123||c>64&&c<91))c=getchar();
return c;
}
ic re(){
int x=0;char c=getchar(),f=0;
while(c<48||c>57)f|=(c=='-'),c=getchar();
while(c>47&&c<58)x=x*10+(c^48),c=getchar();
return f?-x:x;
}
/*
*/