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冒泡排序算法的实现代码
Nov 21 Python
python网络编程学习笔记(10):webpy框架
Jun 09 Python
Python实现的一个自动售饮料程序代码分享
Aug 25 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
Feb 11 Python
Python实现ATM系统
Feb 17 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
python实现简单石头剪刀布游戏
Oct 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程序时遇到的三个问题
2012/01/17 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
React组件生命周期详解
2017/07/03 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
Python如何读取文件中图片格式
2020/01/13 Python
司马光教学反思
2014/02/01 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
办公室规章制度范本
2015/08/04 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python