传送门biu~
对于原式我们可以考虑先计算
n×k
,再把
mod
掉的部分减去。当
k mod i
时,减去的部分相当于
(k/i)×i
。而对于一些连续的
i
,
#include<bits/stdc++.h>
using namespace std;
int n,k,r;
long long ans,res;
int main(){
scanf("%d%d",&n,&k);
ans=1ll*n*k;
n=min(n,k);
for(int i=1;i<=n;i=r+1){
r=min(k/(k/i),n);
res+=1ll*(k/i)*(i+r)*(r-i+1)/2;
}
printf("%lld",ans-res);
return 0;
}