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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python采用socket模拟TCP通讯的实现方法
Nov 19 Python
Python模拟登录12306的方法
Dec 30 Python
详解Python中的多线程编程
Apr 09 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
Python中is和==的区别详解
Nov 15 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
django页面跳转问题及注意事项
Jul 18 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python中复数的共轭复数知识点总结
Dec 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php 文章调用类代码
2011/08/11 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
Python单元测试框架unittest简明使用实例
2015/04/13 Python
Python中将字典转换为列表的方法
2016/09/21 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
初中优秀班集体申报材料
2014/05/01 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
赢在中国观后感
2015/06/02 职场文书
科技馆观后感
2015/06/08 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS