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通过字典dict判断指定键值是否存在的方法
Mar 21 Python
使用python绘制常用的图表
Aug 27 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
pip命令无法使用的解决方法
Jun 12 Python
Python 中导入csv数据的三种方法
Nov 01 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
Django实现发送邮件功能
Jul 18 Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
零基础小白多久能学会python
Jun 22 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
Javascript面向对象编程
2012/03/18 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
pandas计数 value_counts()的使用
2019/06/24 Python
python实现图片压缩代码实例
2019/08/12 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
高三历史教学反思
2014/01/09 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
学校万圣节活动方案
2014/02/13 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
受资助学生感谢信
2015/01/21 职场文书
离婚协议书格式
2015/01/26 职场文书
人力资源部岗位职责
2015/02/11 职场文书
民事调解协议书
2016/03/21 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
你知道Java Spring的两种事务吗
2022/03/16 Java/Android