Python使用更相减损术计算两个整数的最大公约数

更相减损术是《九章算术》中给出的一种用于约分的方法,也可以用来计算最大公约数,其步骤为:

1)如果两个整数都是偶数,就使用2约简,直到两个整数不再都是偶数,然后执行第2步。如果两个整数不都是偶数,则直接执行第2步。

2)用较大的数减去较小的数,如果得到的差恰好等于较小的数,则停止。否则,对较小的数和差值重复这个过程。

3)第1步中约掉的若干个2和第2步中得到的差的乘积为原来两个整数的最大公约数。

39和27这两个整数的最大公约数计算过程如图所示:

640?wx_fmt=png

参考代码:

640?wx_fmt=png


运行结果:无输出,说明该方法与Python标准库math中gcd()函数计算结果一样。



---------董付国老师Python系列教材--------

1)《Python程序设计(第2版)》(2018年7月第7次印刷)

2)《Python可以这样学》(2018年7月第6次印刷)(本书已发行繁体版)

3)《Python程序设计基础(第2版)(2018年7月第3次印刷)

4)《中学生可以这样学Python》2018年5月第2次印刷)

5)《Python程序设计开发宝典》(2018年2月第3次印刷)

6)《玩转Python轻松过二级》(2018年7月第2次印刷)


董付国老师6本Python系列图书阅读指南

董付国老师6本Python系列教材被北大、复旦等近百所高校选作教材

热烈庆祝《Python可以这样学》在台湾发行繁体版


董老师127课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59


----------相关阅读----------

教学课件

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

报告PPT(163页):基于Python语言的课程群建设探讨与实践

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)

报告PPT(123页):Python编程基础精要

《Python程序设计》实验指导书(30个实验)


系列题库分享

1000道Python题库系列分享一(17道)

1000道Python题库系列分享二(48道)

1000道Python题库系列分享三(30道)

1000道Python题库系列分享四(40道)

1000道Python题库系列分享五(40道)

1000道Python题库系列分享六(40道)

1000道Python题库系列分享七(30道)

1000道Python题库系列分享八(29道)

1000道Python题库系列分享九(31道)

1000道Python题库系列分享十(37道)

1000道Python题库系列分享十一(9道)

1000道Python题库系列分享十二(9道编程题)


相关阅读

Python版组合数计算方法优化思路和源码

Python组合列表中多个整数得到最小整数(一个算法的巧妙实现)

Python编写人机对战小游戏(抓小狐狸)

Python寻找给定序列中相差最小的两个数字

几行Python代码模拟轮盘抽奖游戏

Python使用递归法对整数进行因数分解

Python模拟大整数乘法的小学竖式计算过程

基于非递归算法的汉诺塔游戏之Python实现

Python计算有向图节点的入度和出度

Python使用广度优先和深度优先两种方法遍历目录树


猜你喜欢

转载自blog.csdn.net/oh5W6HinUg43JvRhhB/article/details/81107704
0条评论
添加一条新回复