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 相关文章推荐
使用PDB模式调试Python程序介绍
Apr 05 Python
Python实现数据库并行读取和写入实例
Jun 09 Python
python matplotlib 在指定的两个点之间连线方法
May 25 Python
Python字符串的常见操作实例小结
Apr 08 Python
浅析Python 引号、注释、字符串
Jul 25 Python
python3实现mysql导出excel的方法
Jul 31 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
Python中如何添加自定义模块
Jun 09 Python
python raise的基本使用
Sep 10 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
python 逐步回归算法
Apr 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
织梦模板标记简介
2007/03/11 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
PHP中phar包的使用教程
2017/06/14 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
brook javascript框架介绍
2011/10/10 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
自荐信包含哪些内容
2013/10/30 职场文书
中学老师的自我评价
2013/11/07 职场文书
个人安全生产责任书
2014/07/28 职场文书
网络营销实训总结
2015/08/03 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Pillow图像处理库安装及使用
2022/04/12 Python