Python基于递归算法求最小公倍数和最大公约数示例


Posted in Python onJuly 27, 2018

本文实例讲述了Python基于递归算法求最小公倍数和最大公约数。分享给大家供大家参考,具体如下:

# 最小公倍数
def lcm(a, b, c=1):
  if a * c % b != 0:
    return lcm(a, b, c+1)
  else:
    return a*c
test_cases = [(4, 8), (35, 42), (5, 7), (20, 10)]
for case in test_cases:
  print('lcm of {} & {} is {}'.format(*case, lcm(*case)))
def lcm(a, b):
  for i in range(2, min(a,b)+1):
    if a % i == 0 and b % i == 0:
      return i * lcm(a//i, b//i)
  else:
    return a*b
test_cases = [(4, 8), (5, 7), (24, 16), (35, 42)]
for case in test_cases:
  print('lcm of {} & {} is {}'.format(*case, lcm(*case)))
# 最大公约数
def gcd(a, b):
  if a == b:
    return a
  elif a-b > b:
    return gcd(a-b, b)
  else:
    return gcd(b, a-b)
test_cases = [(35, 14), (88, 66), (5, 4), (20, 10)]
for case in test_cases:
  print('GCD of {} & {} is {}'.format(*case, gcd(*case)))

运行结果:

lcm of 4 & 8 is 8
lcm of 35 & 42 is 210
lcm of 5 & 7 is 35
lcm of 20 & 10 is 20
GCD of 35 & 14 is 7
GCD of 88 & 66 is 22
GCD of 5 & 4 is 1
GCD of 20 & 10 is 10

Python 相关文章推荐
Python中用pycurl监控http响应时间脚本分享
Feb 02 Python
python实现查询苹果手机维修进度
Mar 16 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
python安装twisted的问题解析
Aug 21 Python
详解Django定时任务模块设计与实践
Jul 24 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
Pyqt5自适应布局实例
Dec 13 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
Python字典实现伪切片功能
Oct 28 Python
python 实现音频叠加的示例
Oct 29 Python
Python切片操作深入详解
Jul 27 #Python
对Tensorflow中的变量初始化函数详解
Jul 27 #Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 #Python
浅谈tensorflow中几个随机函数的用法
Jul 27 #Python
tensorflow 中对数组元素的操作方法
Jul 27 #Python
Python读取excel中的图片完美解决方法
Jul 27 #Python
tensorflow实现图像的裁剪和填充方法
Jul 27 #Python
You might like
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
js中判断控件是否存在
2010/08/25 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
python实现数组插入新元素的方法
2015/05/22 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
python 重定向获取真实url的方法
2018/05/11 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
同事打架检讨书
2014/02/04 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
员工辞职信范文大全
2015/05/12 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书