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 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
Python3.5模块的定义、导入、优化操作图文详解
Apr 27 Python
python如何制作缩略图
Apr 30 Python
python实现银联支付和支付宝支付接入
May 07 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
python中mongodb包操作数据库
Apr 19 Python
Python开发简易五子棋小游戏
May 02 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中的fopen()函数用打开文件模式说明
2013/06/20 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
2018/12/20 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
详解HTML5中的标签
2015/06/19 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
献爱心倡议书
2014/04/14 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
小学家长意见怎么写
2015/06/03 职场文书
小学三年级作文之写景
2019/11/05 职场文书