(转载请标明作者)
洛谷P2424
求从x—y所有数的约数和的和
公式 :ans+=(n/l)(l+r)(r-l+1)/2
ans=f(y)-f(x-1)
//约数和
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;
ll x,y;//谢谢洛谷大佬的题解orz
ll su(ll n){
ll r,l=1,ans=0;
if(n<=1) return n;
for(l=1,r;l<=n;l=r+1){
r=n/(n/l);
ans+=(ll)(n/l)*(l+r)*(r-l+1)/2;
}
return ans;
}
int main(){
scanf("%d%d",&x,&y);
printf("%lld",su(y)-su(x-1));
return 0;
}