rep(i,2,k)for(int j=i;j<=k;j+=i)A[j].pb(i);
rep(i,1,k){
f[i]=(f[i]+qpow(i,n)-qpow(i-1,n)+mod)%mod;
for(int j:A[i])f[i]=(f[i]-f[i/j]+mod)%mod;
}
rep(i,1,k){
f[i]=(f[i]+qpow(i,n)-qpow(i-1,n)+mod)%mod;
for(int j=i+i;j<=k;j+=i)f[j]=(f[j]-f[i]+mod)%mod;
}
两个代码做的事情完全一致,但是前一个跑的时间(在本机和CF上都)是后一个的5倍以上,有没有解说