gcd(a, b),就是求a和b的最大公约数

lcm(a, b),就是求a和b的最小公倍数

然后有个公式

a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •̀∀•́ ) 简写你懂吗)

解释(不想看就跳过){

  首先,求一个gcd,然后。。。

  a / gcd 和 b / gcd 这两个数互质了,也就是 gcd(   a / gcd ,b / gcd  )  =  1,然后。。。

  lcm = gcd *  (a / gcd) * (b / gcd)

  lcm = (a * b) / gcd

  所以。。a*b = gcd * lcm

}

互质的意思是两个数只有唯一的公约数1;

所以要求lcm,先求gcd

辣么,问题来了,gcd怎么求

辗转相除法

while循环

  1. 1 LL gcd(LL a, LL b){
  2. 2 LL t;
  3. 3 while(b){
  4. 4 t = b;
  5. 5 b = a % b;
  6. 6 a = t;
  7. 7 }
  8. 8 return a;
  9. 9 }

还有一个递归写法

  1. 1 LL gcd(LL a, LL b){
  2. 2 if(b == 0) return a;
  3. 3 else return gcd(b, a%b);
  4. 4 }
  5. 5
  6. 6 LL gcd(LL a, LL b){
  7. 7 return b ? gcd(b, a%b) : a;
  8. 8 }
  9. 9 //两种都可以

辣么,lcm = a * b / gcd

(注意,这样写法有可能会错,因为a * b可能因为太大  超出int  或者 超出 longlong)

所以推荐写成 : lcm = a / gcd * b

然后几个公式自己证明一下

gcd(ka, kb) = k * gcd(a, b)

lcm(ka, kb) = k * lcm(a, b)

上次做题碰到这个公式

lcm(S/a, S/b) = S/gcd(a, b)

S = 9,a = 4,b = 6,小数不会lcm,只好保留分数形式去通分约分。

当我看到右边那个公式。。。。

(╯°Д°)╯┻━┻

这TM我怎么想的到,给我证明倒是会证。 T_T

acm数论之旅(转载)---最大公约数与最小公倍数的更多相关文章

  1. acm数论之旅--组合数(转载)

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅8---组合数(组合大法好(,,• ₃ •,,) )  补充:全错排公式:https://blog.csdn.net/Carey_Lu/ ...

  2. acm数论之旅(转载) -- 逆元

    ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))   数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元) 数论中的倒数是有特别的意义滴 你以为a的倒数在数论中还是1/a吗 ( ...

  3. acm数论之旅--中国剩余定理

    ACM数论之旅9---中国剩余定理(CRT)(壮哉我大中华╰(*°▽°*)╯)   中国剩余定理,又名孙子定理o(*≧▽≦)ツ 能求解什么问题呢? 问题: 一堆物品 3个3个分剩2个 5个5个分剩3个 ...

  4. acm数论之旅--欧拉函数的证明

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭) https://blog.csdn.net/chen_ze_hua ...

  5. acm数论之旅--数论四大定理

    ACM数论之旅5---数论四大定理(你怕不怕(☆゚∀゚)老实告诉我)   (本篇无证明,想要证明的去找度娘)o(*≧▽≦)ツ ----------数论四大定理--------- 数论四大定理: 1.威 ...

  6. acm数论之旅(转载)--素数

    https://www.cnblogs.com/linyujun/p/5198832.html 前言:好多学ACM的人都在问我数论的知识(其实我本人分不清数学和数论有什么区别,反正以后有关数学的知识我 ...

  7. acm数论之旅(转载) -- 快速幂

    0和1都不是素数,也不是合数. a的b次方怎么求 pow(a, b)是数学头文件math.h里面有的函数 可是它返回值是double类型,数据有精度误差 那就自己写for循环咯 LL pow(LL a ...

  8. ACM数论之旅10---大组合数-卢卡斯定理(在下卢卡斯,你是我的Master吗?(。-`ω´-) )

    记得前几章的组合数吧 我们学了O(n^2)的做法,加上逆元,我们又会了O(n)的做法 现在来了新问题,如果n和m很大呢, 比如求C(n, m) % p  , n<=1e18,m<=1e18 ...

  9. ACM数论之旅1---素数(万事开头难(>_<))

    前言:好多学ACM的人都在问我数论的知识(其实我本人分不清数学和数论有什么区别,反正以后有关数学的知识我都扔进数论分类里面好了) 于是我就准备写一个长篇集,把我知道的数论知识和ACM模板都发上来(而且 ...

随机推荐

  1. iframe宽高自适应

    iframe子页面结尾添加本script iframe子页面结尾添加本script <script type="text/javascript">         fu ...

  2. python接口自动化之用HTMLTestRunner生成html测试报告

    [第一步]:引入HTMLTestRunner包 1.下载HTMLTestRunner,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html ...

  3. 事务:Transaction详解

    1.事务概念: 一组sql语句操作单元,组内所有SQL语句完成一个业务,如果整组成功:意味着全部SQL都实现:如果其中任何一个失败,意味着整个操作都失败.失败,意味着整个过程都是没有意义的.应该是数据 ...

  4. Oracle的表空间、用户和模式

    Oracle 的 表空间(Tablespace).用户(User).模式(Schema)   前面有整理了一篇 Oracle 数据库(database) 与 实例(instance) 的概念及关系整理 ...

  5. 找不到方法:'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'

    出现这种情况一般是引用了.net standard 库解决方案1:在web.config 文件中增加如下节点 <dependentAssembly> <assemblyIdentit ...

  6. opencv:图像梯度

    常见的图像梯度算子: 一阶导数算子: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...

  7. CentOS7服务器状态下安装xampp

    遇到的问题 1.远程不能访问phpmyadmin,只能在本地访问,但是本地为命令行模式. 需要修改一下服务器端的配置,我们找到 /opt/lampp/etc/extra/httpd-xampp.con ...

  8. Linux下调试caffe

    参考博客:https://blog.csdn.net/xiaoyezi_1834/article/details/50724875 使用Anjuta 我使用的是ubuntu18.04,安装命令: su ...

  9. eclipse从svn导入静态文件

    1.从eclipse 选择 导入 2.选择仓库和项目,选择finish 3.选择project项目导出

  10. ES6 Set和Map的那点事

    Set  1.Set特点 类数组 新增数据结构 是构造函数 成员值唯一  注重独一无二的特征 2.Set实例的常用方法 console.log('------------Set操作方法-------- ...