考虑整除分块 , 对于一个答案固定的区间 l , r
l为左区间 设值为x=n/l
那么这个区间的贡献就是
#include<bits/stdc++.h>
#define LL long long
using namespace std;
int n,k; LL ans;
int main(){
scanf("%d%d",&n,&k);
ans = (LL)n * k;
for(int l=1,r;l<=n;l=r+1){
if(k/l==0) r=n;
else r = min(k/(k/l),n);
ans -= (LL)(r-l+1) * (k/l) * (l+r)/ 2;
}printf("%lld",ans); return 0;
}