#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
typedef long long LL;
const LL N=2e6+10;
LL n;
LL prime[N],st[N],cnt,mobius[N];
LL ans;
void init(){
mobius[1]=1;
for(LL i=2;i<N;i++){
if(!st[i]){
st[i]=1;
prime[++cnt]=i;
mobius[i]=-1;
}
for(LL j=1;prime[j]<N/i;j++){
st[prime[j]*i]=1;
if(i%prime[j]==0)break;
mobius[prime[j]*i]=-mobius[i];
}
}
for(LL i=1;i<N;i++)mobius[i]+=mobius[i-1];
}
LL calc(LL n,LL d){
n/=d;
LL res=0;
for(LL l=1,r;l<=n;l=r+1){
LL t=n/l;
r=min(n,n/t);
res+=(mobius[r]-mobius[l-1])*t*t;
}
return res;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
init();
cin>>n;
for(LL i=1;i<=n;i++)ans+=calc(n,i)*i;
ans-=n*(n+1)/2;
ans/=2;
cout<<ans;
return 0;
}
把数组开大一点就能A,求助。