数论分块



点击查看代码
long long H(int n)
{
long long res=0;
int l=1,r;
while(l<=n)
{
r=n/(n/l);
res+=1ll*(r-l+1)*(n/l);
l=r+1;
}
return res;
}



long long H(int n)
{
long long res=0;
int l=1,r;
while(l<=n)
{
r=n/(n/l);
res+=1ll*(r-l+1)*(n/l);
l=r+1;
}
return res;
}