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 相关文章推荐
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
python八皇后问题的解决方法
Sep 27 Python
python实现多层感知器
Jan 18 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
使用python爬取抖音视频列表信息
Jul 15 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
pycharm工具连接mysql数据库失败问题
Apr 01 Python
Django自定义列表 models字段显示方式
Apr 03 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
python sleep和wait对比总结
Feb 03 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 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上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python getpass模块用法及实例详解
2019/10/07 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
PyQt5实现简单的计算器
2020/05/30 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
通信工程毕业生自荐信
2013/11/01 职场文书
爱国影片观后感
2015/06/18 职场文书
跳高加油稿
2015/07/21 职场文书
Python中的pprint模块
2021/11/27 Python