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接收Gmail新邮件并发送到gtalk的方法
Mar 10 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
Python实现的txt文件去重功能示例
Jul 07 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
详解Python3中ceil()函数用法
Feb 19 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
python元组的概念知识点
Nov 19 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 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
Yii rules常用规则示例
2016/03/15 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
mouse_on_title.js
2006/08/25 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
python写的ARP攻击代码实例
2014/06/04 Python
python字典快速保存于读取的方法
2018/03/23 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python进度条显示之tqmd模块
2020/08/22 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
全球立体声:World Wide Stereo
2018/09/29 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
C#实现启动一个进程
2016/10/01 面试题
一套比较完整的软件测试人员面试题
2012/05/13 面试题
银行会计主管岗位职责
2014/10/01 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP