#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+5;
int n,prm[N],m,v[N]={1,1};
ll sum[N],ans,phi[N];
int main()
{
scanf("%d",&n);
for(int i=2;i<=n;i++)
{
if(!v[i])
{
v[i]=i,prm[++m]=i;
phi[i]=i-1;
}
for(int j=1;j<=m;j++)
{
if(prm[j]>v[i] || prm[j]>n/i) break;
v[i*prm[j]]=prm[j];
phi[i*prm[j]]=phi[i]*(i%prm[j]?prm[j]-1:prm[j]);
}
}
for(int i=1;i<=n;i++) sum[i]=sum[i-1]+phi[i];
for(int i=1;i<=m;i++) ans+=2*sum[n/prm[i]]+1;
printf("%lld\n",ans);
return 0;
}
我用这代码交了另一道题也是编译失败,不知道为什么qwq