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之数据类型总结
Sep 24 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
Python实现购物车购物小程序
Apr 18 Python
python pandas库的安装和创建
Jan 10 Python
Python List cmp()知识点总结
Feb 18 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
jupyter notebook中新建cell的方法与快捷键操作
Apr 22 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
python实现自定义日志的具体方法
May 28 Python
Django REST framework 限流功能的使用
Jun 24 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
js删除所有的cookie的代码
2010/11/25 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
javascript基础知识讲解
2017/01/11 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
Python生成器(Generator)详解
2015/04/13 Python
Python实现股市信息下载的方法
2015/06/15 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
后勤人员自我鉴定
2013/10/20 职场文书
超市中秋节活动方案
2014/02/12 职场文书
经典商业广告词
2014/03/13 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
优秀团支部申报材料
2014/12/26 职场文书
2019个人半年工作总结
2019/06/21 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
spring boot实现文件上传
2022/08/14 Java/Android