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实现3行代码解简单的一元一次方程
Aug 18 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
python如何让类支持比较运算
Mar 20 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 Python
python匿名函数的使用方法解析
Oct 10 Python
用python中的matplotlib绘制方程图像代码
Nov 21 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 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翻页类
2009/06/01 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
白岩松演讲
2014/05/21 职场文书
音乐节策划方案
2014/06/09 职场文书
汽修专业自荐信
2014/07/07 职场文书
超市创业计划书
2014/09/15 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
律师授权委托书范本
2014/10/07 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
简历自我评价模板
2015/03/11 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
请客吃饭开场白
2015/06/01 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript