辗转相除法

原理

1、a和b的最大公因数也是b和r的最大公因数。其中,r是a除以b的余数

证明

计算过程
40和15的最大公约数
40➗15 = 2…10
15➗10 = 1…5
10➗ 5 = 2…0 # 余数为零,得到结果

代码实现

def f(a, b):if b == 0:return aelse:return f(b, a%b)

更相减损法

原理

1、a和b的公因数也是a和a-b的公因数;a和b的公因数也是b和a-b的公因数

计算过程
98 和63的最大公约数
98 - 63 = 35
63 - 35 = 28
35 - 28 = 7
28 - 7 = 21
21 - 7 = 14
14 - 7 = 7 # 减数和差相等,得到结果

代码实现

def fun(a,b):while a != b:if a > b:a = a - bif a < b:b = b - areturn a # 循环结束时,a和b相等,任选一个输出

证明

a和b的公因数也是a 和a - b的公因数

设 a和b最大公因数为d,a = md,n = nd,
a-b = (m-n)d, # m,n都是整数,故m-n为整数,d也是a-b的因数

更相减损法和辗转相除法求最大公约数相关推荐

  1. 更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数

    更相减损法和辗转相除法(GCD)求最小公倍数和最大公约数 标签(空格分隔): 算法 算法竞赛 这两种算法平时经常听到,听起来也很装逼,但是我老是忘了他们的原理,今天好好想想,写下来. 更相减损法 更相 ...

  2. 求最大公约数:更相减损法和辗转相除法

    更相减损法原理 假设有两个数161和63,我们要求这两个数的最大公因数,不妨假定这个最大公因数为m,我们可以将较大的数161看成63+98,63与98的和161可以被m整除,其中63也可以被m整除,自 ...

  3. 辗转相除法与更相减损术(求最大公约数)

    辗转相除法:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数. ...

  4. 「辗转相除法」和「更相减损术」求最大公约数

    一.辗转相除法 举个例子,比如155和65 155=65*2+25 65=25*2+15 25=15*1+10 15=10*1+5 10=5*2+0 一直除到余数为0为止,所以最大公约数是5 publ ...

  5. 更相减损法(求最大公约数)

    算法本质: 第一步:任意给定两个正整数:判断它们是否都是偶数.若是,则用2约简:若不是则执行第二步.第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数.继续这个操作,直到所得的 ...

  6. 更相减损法java代码_Python基于更相减损术实现求解最大公约数的方法

    本文实例讲述了Python基于更相减损术实现求解最大公约数的方法.分享给大家供大家参考,具体如下: 先从网上摘录一段算法的描述如下: 更相减损法:也叫 更相减损术,是出自< 九章算术>的一 ...

  7. 求最大公约数(更相减损术辗转相除法)

    求解最大公约数的多种Way: 1 暴力解决法:M不断自减找到最大公约数. 2 辗转相除法:反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数. 3 更相减损术:若两者都为偶数,进行折半,直到 ...

  8. 求最大公约数和最小公倍数(更相减损法/辗转相除法)

    目录 一.最大公约数 1.1 更相减损法 1.2 辗转相除法 二.最小公倍数 2.1 最小公倍数=两数相乘/最大公约数 2.2 用较小数的倍数除以较大数 一.最大公约数 1.1 更相减损法 原理如下图 ...

  9. 更相减损法 php,求两数最大公约数 - WAITING520的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.普通写法 /** * 普通写法 * @param numbera * @param numberb * @return */ public static int gcd(int numbera, ...

最新文章

  1. Nibiru Open Day,OZO 遇见 DigiArtist 国际数字艺术展
  2. 2020年2月Github上最热门的开源项目
  3. ES6,你不得不学!
  4. 大型系统OA--技术
  5. sql android客户端,XSGManage: 学生成绩管理系统---客户端,基于Android+Django+sqlit3开发...
  6. apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
  7. layui table 分页 序号始终从”1“开始解决方法
  8. 流拍后,Cerberus 银行木马源代码在黑市免费公开
  9. Echarts数据可视化series-heatmap热力图,开发全解+完美注释
  10. 【自然框架】n级下拉列表框的原理
  11. Security+ 学习笔记32 云安全控制
  12. http://my.oschina.net/huangyong/blog/372491?fromerr=hobPLCmQ#OSC_h2_5
  13. Proteus8.6 安装教程
  14. 【MapGIS二次开发】常见问题解析
  15. 【硬刚大数据之面试篇】2021年从零到大数据专家面试篇之ClickHouse篇
  16. MFC基础之字符集,Unicode字符集,多字节字符集
  17. 离散数学_集合论部分_总结
  18. NER项目--github--A Unified MRC Framework for Named Entity Recognition
  19. css-富文本编辑显示
  20. imageview控件加载图片

热门文章

  1. 国货美妆品牌“投靠”李佳琦,都想成为下一个“完美日记”?
  2. vue elementUI 路由跳转
  3. 麻烦的罗马字符白字注音
  4. 用Arduino玩转掌控板(ESP32):不到100行代码实现Siri语音控制 → WebServer应用示例...
  5. 别再傻傻的用CentOS 8的版本了,快升级成CentOS 8 Steam (升级教程)
  6. SAP中重复制造生产计划编制——工序分解(分解数)
  7. NOJ-求广义表深度-西工大数据结构
  8. Day 1 BUUCTF——特殊的 BASE64 1
  9. /proc/sysrq-trigger详解
  10. 人的一生,在追求什么?