链接:
https://odzkskevi.qnssl.com/3b068390f8a2f00b5e1927f3e846ed02?v=1535638189
思路:
做法就是除法分块,不懂得看这里
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const int inf = 0x3f3f3f3f;
ll get_sum(ll x)
{
ll ans =0;
for(ll left=1,right;left<=x;left=right+1)
{
right = x/(x/left);
ans+=(x/left)*(left+right)*(right-left+1)/2;
}
return ans;
}
int main()
{
ll a,b;
while(cin>>a>>b)
{
cout<<get_sum(b)-get_sum(a-1)<<endl;
}
return 0;
}