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算法之栈(stack)的实现
Aug 18 Python
python使用socket远程连接错误处理方法
Apr 29 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
python在线编译器的简单原理及简单实现代码
Feb 02 Python
对pandas中apply函数的用法详解
Apr 10 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
python3实现名片管理系统
Nov 29 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
Python基础之tkinter图形化界面学习
Apr 29 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中cookie的作用域
2008/03/27 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python实现简单成绩录入系统
2019/09/19 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
趣味比赛活动方案
2014/02/15 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
财产分割协议书范本
2014/11/03 职场文书
人事局接收函
2015/01/31 职场文书
英文邀请函
2015/02/02 职场文书
上学路上观后感
2015/06/16 职场文书
单独二胎证明
2015/06/24 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
Oracle锁表解决方法的详细记录
2022/06/05 Oracle