题意:

给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值,其中k mod i表示k除以i的余数。例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7

分析:

K对根号k之后的值取模会有相同的商出现,且具有相同的商的余数呈等差数列。

#include <bits/stdc++.h>
using namespace std; typedef long long ll; int main()
{
freopen("joseph.in","r",stdin);
freopen("joseph.out","w",stdout);
ll n,k;
while(~scanf("%I64d%I64d",&n,&k))
{
ll sum=0;
if(n>k) sum+=(n-k)*k;
ll q=sqrt(1.0*k);
ll p=k/q;
for(int i=1;i<=n && i<=p;i++)
sum+=k%i;
for(int i=q;i>1;i--)
{
ll p1=k/i;
ll p2=k/(i-1);
if(p1>n) break;
if(p2>n) p2=n;
sum+=(k%(p1+1)+k%p2)*(p2-p1)/2;
}
printf("%I64d\n",sum);
}
return 0;
}

最新文章

  1. javascript随笔20160808
  2. IBM x3850 x5 服务器 安装 Windows Server 2008
  3. With语句以及@contextmanager的语法解析
  4. Deep Learning 11_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)
  5. 【转】beancopy的替代方案
  6. .Net字符串驻留池
  7. C++中 类的构造函数理解(一)
  8. Beginning OpenGL ES 2.0 with GLKit Part 1
  9. emctl start dbconsole OC4J_dbconsole*** not found
  10. java String分类trim,substring,replaceAll,indexOf使用功能
  11. Ubuntu加上一个命令搜索路径/etc/ environment
  12. Mvc Swagger报错的解决办法。
  13. ,vue-router使用心得
  14. 不偏移的天地图地图服务-SuperMap版
  15. python中lambda的用法
  16. mysql 不同引擎的比较
  17. java自定义事件机制分析
  18. 170526、spring 执行定时任务
  19. 转 group_concat函数详解
  20. 【Linux】head命令

热门文章

  1. Zabbix 监控系统部署
  2. kubernetes 监控(14)
  3. 057.Python前端Django模型ORM多表查询
  4. 043.Python线程基本介绍
  5. 036.Python的TCP语法
  6. python基础之psutil模块和发邮件(smtplib和yagmail)
  7. 【补档_STM32单片机】脉搏波采集显示硬件设计
  8. Spring的三种注入
  9. Spring Mvc Long类型精度丢失
  10. 【RMAN】使用RMAN备份将数据库不完全恢复到指定时间点