题目链接
https://www.luogu.com.cn/problem/P2261
解题思路
整除分块基础
大佬写的太好了
AC代码
#include<bits/stdc++.h> #define ll long long using namespace std; ll ans,n,k; int main() { cin>>n>>k; ans=n*k; for(ll l=1,r;l<=n;l=r+1) { if(k/l!=0) r=min(k/(k/l),n); else r=n; ans-=(l+r)*(r-l+1)*(k/l)/2; } cout<<ans<<endl; return 0; }