直接求,数论分块即可
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
int n,ans=0;
scanf("%d",&n);
for(int i=1,j;i<=n;i=j+1)
{
j=n/(n/i);
ans+=(n/i)*(j+1-i);
}
printf("%d",ans);
return 0;
}