1.贴题

题目来自PythonTip
最大公约数


给你两个正整数a和b, 输出它们的最大公约数。

例如:a = 3, b = 5

则输出:1


2.说明

两个思路
1. 按部就班一个个验证是否可以同时被两数整除
2. 利用数学上已经证明的方法“辗转相除法”(跳转百度百科)

3.参考代码

按部就班法

for i in range(min(a,b), 0, -1): #从两数中小的一个开始到1,一个个验证if a % i == 0 and b % i ==0: #如果能够被两数同时整除print(i) #输出该数后不再循环break

辗转相除法

if a<b: #如果a<b,则交换两数位置,否则不交换a,b = b,a
r = a % b #求a/b的余数
while r != 0: #在余数不为零时,始终进行交换和相除a,b = b,rr = a % b
print(b) #余数为零后,打印输出b

4.改进

看了人家的代码,发现辗转相除法还有更简洁的写法

非递归法

while b:a,b=b,a%b
print(a)

递归法

def gcd(x , y):if y == 0:print(x)else:gcd(y, x%y)gcd(a,b)

以及一行代码

print(max([x for x in range(1,a+1) if a%x==0 and b%x==0]))
print([x for x in range(1,a+1) if a % x ==0 and b % x ==0][-1])

python之最大公约数相关推荐

  1. 最大公约数python语言算法_使用Python求解最大公约数的实现方法

    这篇文章主要介绍了使用Python求解最大公约数的实现方法,包括用Python表示欧几里得算法和Stein算法的求解原理. 1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的 ...

  2. python最大公约数计算_使用Python求解最大公约数的实现方法

    1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数.其计算原理依赖于下面的定理: 定理: gcd(a, b) = gcd(b, a mod b) 证明: a可以表示 ...

  3. python中求最小公约数,python求最大公约数和最小公倍数的简单方法

    python求最大公约数和最小公倍数的简单方法 python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于 ...

  4. python计算最大公约数和最小公倍数_python求最大公约数和最小公倍数的方法介绍...

    python求最大公约数和最小公倍数的方法介绍 发布时间:2020-04-28 10:42:38 来源:亿速云 阅读:114 作者:小新 今天小编给大家分享的是python求最大公约数和最小公倍数的方 ...

  5. python计算最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数

    python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和 ...

  6. python计算最大公约数函数_Python实现的求解最大公约数算法示例

    本文实例讲述了Python实现的求解最大公约数算法.分享给大家供大家参考,具体如下: 使用Python求解两个数的最大公约数的时候用到了前面介绍的分解质因式.其实,我写分解质因式程序的时候就是因为发现 ...

  7. python计算最大公约数函数_python如何求解两数的最大公约数

    题目: 给定两个自然数,求这两个数的最大公约数. 分析: 单看题目的话,非常简单,我们可以循环遍历自然数,如果能够整除两个自然数,就把这个数记下来,在这些记录中找到最大的一个. 但是这样做有几个缺点: ...

  8. python用递归方式实现最大公约数_使用Python求解最大公约数的实现方法

    1. 欧几里德算法 欧几里德算法又称辗转相除法, 用于计算两个整数a, b的最大公约数.其计算原理依赖于下面的定理: 定理: gcd(a, b) = gcd(b, a mod b) 证明: a可以表示 ...

  9. Python数学计算工具4、Python求最大公约数

    最大公约数百度解析: 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个. a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大 ...

  10. Python求最大公约数和最小公倍数

    题目要求: 任意给出两个数,求出它的最大公约数和最小公倍数 判断条件: 最小公倍数 = (num1 * num2) / 最大公约数 代码块: #1.接收两个数字num1 = int(input('Nu ...

最新文章

  1. js控制图片的缩放代码示例
  2. 面试之Hashtable和ConcurrentHashMap
  3. 从零开始入门 K8s | 理解 RuntimeClass 与使用多容器运行时
  4. java 按条件注解_Spring 条件注解 @Conditional
  5. Linux中的DRM、DRI、DMA 介绍
  6. WorldWind源码剖析系列:外包围盒类BoundingBox和外包围球类BoundingSphere
  7. BZOJ 2733 | 洛谷 P3224 [HNOI2012]永无乡
  8. 在自己的linux服务器上面部署ShowDoc
  9. 台虚拟机更改计算机名,检查虚拟机的硬件信息、更改虚拟机名称、查看虚拟机配...
  10. 迁移学习 简而言之_简而言之Java.io:22个案例研究
  11. 性能优越的轻量级日志收集工具,微软、亚马逊都在用!
  12. Dynamics CRM2016 新功能之Solution enhancements
  13. 如何对 Kubernetes 进行扩展
  14. 微软官方Microsoft文档地址
  15. YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)
  16. 谷歌技术帮助美军方无人机识别更精准
  17. UPC 2019年第二阶段我要变强个人训练赛第六场
  18. 中兴服务器isac配置,中兴AC 配置手册V1.0.docx
  19. 我与学霸的距离计算机,你与学霸的距离,可能就差本笔记
  20. 游戏开发中常见的几种碰撞检测

热门文章

  1. 【摘】请问make -j8 和make -j4 是什么意思?什么作用?
  2. word分散对齐调整宽度_Word文字对齐如何调整,word对齐方法大全
  3. 服务器响应551,为什么输出fi上的ftp响应551错误
  4. css 文字溢出...显示,hover时显示隐藏文字
  5. pandas之用loc、iloc、ix进行索引以及切片
  6. python浮点数类型_python浮点类型
  7. Zephyr events
  8. Linux权限管理(week1_day5)--技术流ken
  9. python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中
  10. LeetCode 19 螺旋矩阵