Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例


Posted in Python onMay 21, 2018

本文实例讲述了Python基于递归和非递归算法求两个数最大公约数、最小公倍数。分享给大家供大家参考,具体如下:

最大公约数和最小公倍数的概念大家都很熟悉了,在这里就不多说了,今天这个是因为做题的时候遇到了所以就写下来作为记录,也希望帮到别人,下面是代码:

#!/usr/bin/env python
#coding:utf-8
from fractions import gcd
#非递归实现
def gcd_test_one(a, b):
  if a!=0 and b!=0:
    if a>b:
      a, b=b, a
    if b%a==0:
      return a
    gcd_list=[]
    for i in range(1,a):
      if b%i==0 and a%i==0:
        gcd_list.append(i)
    return max(gcd_list)
  else:
    print 'Number is wrong!!!'
#递归实现
def gcd_test_two(a, b):
  if a>b:
    a, b=b, a
  if b%a==0:
    return a
  else:
    return gcd_test_two(a,b%a)
#python自带的gcd
def gcd_test_three(a, b):
  return gcd(a,b)
if __name__ == '__main__':
  print gcd_test_one(12,24)
  print gcd_test_one(12,8)
  print gcd_test_one(6,24)
  print gcd_test_one(0,24)
  print '----------------------------------------------------------------------------'
  print gcd_test_two(12,24)
  print gcd_test_two(12,8)
  print gcd_test_two(6,32)
  print '----------------------------------------------------------------------------'
  print gcd_test_three(12,24)
  print gcd_test_three(12,8)

结果如下:

12
4
6
Number is wrong!!!
None
----------------------------------------------------------------------------
12
4
2
----------------------------------------------------------------------------
12
4

Python 相关文章推荐
python获取文件版本信息、公司名和产品名的方法
Oct 05 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
查看Django和flask版本的方法
May 14 Python
python获取本机所有IP地址的方法
Dec 26 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
pycharm运行scrapy过程图解
Nov 22 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python requests模拟登陆github的实现方法
Dec 26 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
详解Pymongo常用查询方法总结
Jan 29 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 #Python
Python下使用Scrapy爬取网页内容的实例
May 21 #Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 #Python
对python抓取需要登录网站数据的方法详解
May 21 #Python
深入浅析python 中的匿名函数
May 21 #Python
python3 selenium 切换窗口的几种方法小结
May 21 #Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 #Python
You might like
PHP的FTP学习(四)
2006/10/09 PHP
php中看实例学正则表达式
2006/12/25 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
一个简单的php路由类
2016/05/29 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
基于python实现地址和经纬度转换
2020/05/19 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
美国牛仔品牌:True Religion
2018/11/16 全球购物
班主任班级寄语大全
2014/04/04 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript