题目描述

给出正整数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

输入

第一行2个数n,k。

输出

一个数 j(n,k)。

样例

Input

Output

5 3

7

50% 数据 满足 n<1e6

100%数据 满足 n<1e12 k<=n

开始毫无头绪可言,直接2分钟写了50%的ZZ代码。。。。

怎么找规律?打表:

100/100=1……0
100/99=1……1
100/98=1……2
100/97=1……3
100/96=1……4
100/95=1……5
100/94=1……6
100/93=1……7
100/92=1……8
100/91=1……9
100/90=1……10
100/89=1……11
100/88=1……12
100/87=1……13
100/86=1……14
100/85=1……15
100/84=1……16
100/83=1……17
100/82=1……18
100/81=1……19
100/80=1……20
100/79=1……21
100/78=1……22
100/77=1……23
100/76=1……24
100/75=1……25
100/74=1……26
100/73=1……27
100/72=1……28
100/71=1……29
100/70=1……30
100/69=1……31
100/68=1……32
100/67=1……33
100/66=1……34
100/65=1……35
100/64=1……36
100/63=1……37
100/62=1……38
100/61=1……39
100/60=1……40
100/59=1……41
100/58=1……42
100/57=1……43
100/56=1……44
100/55=1……45
100/54=1……46
100/53=1……47
100/52=1……48
100/51=1……49
100/50=2……0
100/49=2……2
100/48=2……4
100/47=2……6
100/46=2……8
100/45=2……10
100/44=2……12
100/43=2……14
100/42=2……16
100/41=2……18
100/40=2……20
100/39=2……22
100/38=2……24
100/37=2……26
100/36=2……28
100/35=2……30
100/34=2……32
100/33=3……1
100/32=3……4
100/31=3……7
100/30=3……10
100/29=3……13
100/28=3……16
100/27=3……19
100/26=3……22
100/25=4……0
100/24=4……4
100/23=4……8
100/22=4……12
100/21=4……16

…………………………

可以看出一些规律来:

1.在除的过程中,有一段整除相等的区间,它们的余数也是成等差数列排列的,且公差就是公共商!!。

2.怎么加?ans先赋值成n*k,每次找到区间后减去整除数*i即可。

3.n>k怎么办?当i循环到大于k时,余数都为k,商都为0——将n赋值为k

4.然后想清楚后就是一个超短代码~\(≧▽≦)/~啦啦啦

代码:

#include<cstdio>
#include<iostream>
using namespace std;
long long sum;
int main()
{
  freopen("C.in","r",stdin);
  freopen("C.out","w",stdout);
  long long n,k;
  cin>>n>>k;
  sum=n*k;
  if(n>k)
  n=k;
  long long left=0,right=0,cha=0;
  for(long long i=1;i<=n;i=right+1)
  {
    cha=k/i;left=k/(cha+1)+1;right=k/cha;//left也可以直接赋值成i。为什么?区间连续性
    if(right>n)right=n;
    sum-=(right+left)*(right-left+1)*cha/2;
  }
    cout<<sum;
    return 0;
}

上天的节奏~

转载于:https://www.cnblogs.com/937337156Zhang/p/5812552.html

成都电子神技大学模拟题(取模运算)相关推荐

  1. kattis ones简单题取模运算+枚举

    题目链接原链接 题目 给定不被2和5整除的整数n,有些n的倍数是十进制中的1的序列(比如111,1111111).其中最小的一个1的序列是几位数字? 比如数字3的37倍是111.所以是三位 Given ...

  2. POJ3980 取模运算【水题】

    取模运算 Description 编写一个C函数mod(int n, int m),实现取模运算% Input 输入包含多行数据 每行数据是两个整数a, b (1 <= a, b <= 3 ...

  3. 杂学——密码学、中国余数定理、韩信点兵法、取模运算

    目录大纲 密码学 专业术语 参考文章,简单学习 学习时,要知道的 相关时事 密码学 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于 ...

  4. 【数学】什么是取模运算?

    取模运算 参考:[力扣算法题]258. 各位相加

  5. 大数取模运算,快速幂取模运算

    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值. ...

  6. java中的取模和取余_取模运算

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 取模运算是求两个数相除的余数.[1] 取模运算("Modulus Operation")和取余运算(&qu ...

  7. 演示多组int,float,double的数与 2,2.0f,2.0d的除法运算和取模运算,如有兴趣,可自行分析对比结果

    因为各种基本数据类型所占用的存储空间各不相同,所以在进行各种计算时,有可能存在精度题.计算机的操作要在内存中进行,而内存容量有限:另一方面,持久化存储设备的存储空间也有限,内存中的数据可能需要持久化保 ...

  8. java个人学习笔记:取模运算 整数除运算 +运算

    如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数则不可忽略.此外,取模运算的结果不一定总是整数. 对于除号"/",它的整数除和小数除是有区别的:整数之间做除 ...

  9. 浮点数能进行取模运算吗?(不行,暂时只能是两个整数之间)

    自己在Dev里验证了,浮点数取模时有编译错误,通不过. 如:[Error] invalid operands of types 'double' and 'int' to binary 'operat ...

最新文章

  1. C#进阶系列——动态Lamada
  2. pycharm连接远程服务器
  3. 农村电商谋定双创工程-李玉庭:互联网+农产品重整流通
  4. dojo readings
  5. P3651-展翅翱翔之时【贪心,环套树】
  6. 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库
  7. xxl-job搭建与使用
  8. CAN 总线嵌入式驱动编程
  9. XML-RPC技术在WP上研究(一)
  10. 去哪网实习总结:JavaWeb配置404页面(JavaWeb)
  11. Windowstelnet服务怎么开启 Win11telnet服务怎么开启详细介绍
  12. php设计模式-责任链模式
  13. java实现梯度异步通知,BIO原理及代码实现
  14. ajax js java省市三级联动菜单,javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)(示例代码)...
  15. Cgroup 资源配置方法----------Control Groups------Docker通过 Cgroup 来控制容器使用的资源配额
  16. 数字图像处理,图像配准SIFT算法 (Lowe的代码)
  17. python+opencv代码给证件照换底色(别再用PS啦)(转载)
  18. HTML中将图片进行放大缩小
  19. java 直线交点_[Java教程]谈谈求线段交点的几种算法(js实现,完整版)
  20. 【2024】末两位数

热门文章

  1. 我是个初二学生,想考一中,现在该怎么努力?
  2. 终于搞懂了网红主播的套路
  3. 各年龄段都是怎么提加薪的?
  4. 对于一个大一计科新生,有什么代码行数在500~1000的程序(C语言)可以试着写来练手?
  5. 多文件结构和编译预处理命令
  6. 几种常见的分布及其性质
  7. Digits of Factorial LightOJ - 1045(数学题?)
  8. 谈谈我的session跨域处理方法
  9. 1004. Counting Leaves (30)
  10. Prototype(原型模式)