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的Django框架中的中间件
Jul 24 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
Python中sort和sorted函数代码解析
Jan 25 Python
python和flask中返回JSON数据的方法
Mar 26 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
python单向循环链表原理与实现方法示例
Dec 03 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
python缩进长度是否统一
Aug 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错误、异常处理类
2014/03/21 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
对python中dict和json的区别详解
2018/12/18 Python
Python File(文件) 方法整理
2019/02/18 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
挪威手表购物网站:Klokker
2016/09/19 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
师范毕业生求职信
2014/07/11 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL