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根据出生日期获得年龄的方法
Mar 31 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Python tkinter label 更新方法
Oct 11 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
python输出结果刷新及进度条的实现操作
Jul 13 Python
python tkinter实现下载进度条及抖音视频去水印原理
Feb 07 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
python标准库ElementTree处理xml
May 20 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入门学习的几个不错的实例代码
2008/07/13 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &
2010/02/09 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
js实现秒表计时器
2019/12/16 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
python绘制直线的方法
2018/06/30 Python
django 单表操作实例详解
2019/07/30 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python多进程重复加载的解决方式
2019/12/13 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
大学生个人简历中的自我评价
2013/12/27 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
劲霸男装广告词
2014/03/21 职场文书
语文课外活动总结
2014/08/27 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
入党介绍人意见2015
2015/06/01 职场文书
爱护环境建议书
2015/09/14 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python