题面

这道题是一道整除分块的模板题;

首先,知道分块的人应该知道,n/i最多有2*sqrt(n)种数,但这和余数有什么关系呢?

注意,只要n/i的值和n/(i+d)的值一样,那么n%i到n%(i+d)的值就是一个等差数列!因为n/i=n/(i+1)*(i+1)=n/i*(i+1)=n/i*i+n/i;

所以在向下取整的情况下它是公差为n/i的等差数列;

因此运用分块的性质和等差数列求和公式就可以切掉这道题;

#include <bits/stdc++.h>
using namespace std;
long long n,k;
int main()
{
cin>>n>>k;
long long ans=n*k;
for(register long long l=,r;l<=n;l=r+){
if(k/l==) r=n;
else r=min(k/(k/l),n);
ans-=((r-l+)*(k/l*l)+(r-l+)*(r-l)/*(k/l));
}
cout<<ans;
}

最新文章

  1. CRUD查询
  2. 深入了解webservice_开发实战篇
  3. 【NOIP模拟赛】正方形大阵
  4. (C/C++) 算法,编程题
  5. Start:at cnblogs firstDay
  6. PBOC规范(2.0-&gt;3.0)对照表
  7. QString-&gt;string-&gt;wstring-&gt;LPCWSTR
  8. 当linux遇上多网卡时
  9. JavaScript引用类型之Array数组的排序方法
  10. ASP.NET MVC应用程序把文字写在图片上
  11. Unreal Engine 4 Radiant UI 插件入门(三)——从蓝图中调用JS
  12. 《JAVA程序设计》第14周学习总结
  13. Android中R文件的丢失问题以及aapt.exe停止工作如何解决
  14. html基础js
  15. h5页面关于复制某段文字
  16. Django——权限
  17. BZOJ1207 [HNOI2004]打鼹鼠 动态规划
  18. Beef的使用
  19. rocketmq事务消息
  20. 【Hbase三】Java,python操作Hbase

热门文章

  1. try捕获SQL异常
  2. redhat6.5 安装oracle11G
  3. TopCoder SRM 667 Div.2题解
  4. node.js实现web解析dns
  5. JS框架_(Typed.js)彩色霓虹灯发光文字动画
  6. C++入门经典-例5.10-指针作为返回值
  7. C++入门经典-例4.5-利用循环求n的阶乘
  8. ContentLoadingProgressBar
  9. 字面常量 kotlin(2)
  10. 全面解读php-流程控制