P2424 约数和
链接: [link]((https://www.luogu.com.cn/problem/P2424).
**题解:**运用了整除分块,将数据进行了分块,再加上差分即可,可以大大化简运算过程。
#include<bits/stdc++.h>
using namespace std;
long long slove(long long n)
{
long long a=1,b=0,l=1,r=0;
for(long long l=1,r=0;l<=n;l=r+1)
{
r=n/(n/l);
long long c=n/l;
b+=c*(r-l+1)*(r+l)/2;
}
// cout<<b;
return b;
}
int main()
{
long long x,y;
cin>>x>>y;
long long ans=0;
ans=slove(y)-slove(x-1);
cout<<ans<<endl;
return 0;
}