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进阶_关于命名空间与作用域(详解)
May 29 Python
python+opencv实现的简单人脸识别代码示例
Nov 14 Python
对python模块中多个类的用法详解
Jan 10 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
python 协程 gevent原理与用法分析
Nov 22 Python
python程序输出无内容的解决方式
Apr 09 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
python爬虫beautifulsoup解析html方法
Dec 07 Python
class类在python中获取金融数据的实例方法
Dec 10 Python
你喜欢篮球吗?Python实现篮球游戏
Jun 11 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学习笔记(三)操作符与控制结构
2011/08/06 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
js日期时间补零的小例子
2013/03/05 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python之父谈Python的未来形式
2016/07/01 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python pandas常用函数详解
2018/02/07 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
python反转列表的三种方式解析
2019/11/08 Python
Python高级property属性用法实例分析
2019/11/19 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
Python如何根据时间序列数据作图
2020/05/12 Python
木马的传播途径主要有哪些
2016/04/08 面试题
参观监狱心得体会
2014/01/02 职场文书
大学生校园创业计划书
2014/02/08 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
个人投资合作协议书
2014/10/12 职场文书
2015年教务工作总结
2015/05/23 职场文书