Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
作者:Together_CZ 发布时间:2023-04-19 19:40:57
标签:Python,最大公约数,最小公倍数
本文实例讲述了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
PS:这里再为大家推荐一款本站相关在线工具供大家参考:
在线最小公倍数/最大公约数计算工具:
http://tools.jb51.net/jisuanqi/gbs_gys_calc
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/together_cz/article/details/69708092
0
投稿
猜你喜欢
- 一、模块概述模块指的是包含python代码的文件,也就是一个.py文件就是一个模块。文件夹(directory)---->包(pack
- 一. 访问WEB数据库的多种方案目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:1.公共网关接口CGI(Commo
- 前言:本文从0到1实现django搭建一个web页面,实现了django连接mysql数据库,简单的get、post请求等一、使用pyach
- 如下所示:#! usr/bin/python#coding=utf-8 import numpy as npimport matplotli
- 如何删除某个字段的最后四个字符我们有的时候在进行数据操作的时候,会遇到一些情况,例如有的时候,某个字段会多出现多余的东西。比如城市code
- 之前爬美团外卖后台的时候出现的问题,各种方式拖动验证码都无法成功,包括直接控制拉动,模拟人工轨迹的随机拖动都失败了,最后发现只要用chrom
- 实现代码如下:# -*- coding: utf-8 -*-import math, random,timeimport threading
- 目录创建conda环境下载Apple提供的tensorflow支持安装环境前准备工作安装依赖及相关库测试参考资料苹果为M1芯片的Mac提供了
- 哎,以前写博文的时候没注意,有些图片用QQ来截取,获得的图片文件名都是类似于QQ截图20120926174732-300×15.png的形式
- 1、 二叉树的构建我们都知道二叉搜索树的特点是:当前节点的值大于它的左子树的值,小于等于右子树的值。所以我们这里可以通过迭代的方式构建二叉搜
- 条形图(bar chart),也称为柱状图,是一种以长方形的长度为变量的统计图表,长方形的长度与它所对应的变量数值呈一定比例。1. 竖放条形
- ADB是Android SDK中的一个工具, 使用ADB可以直接操作管理Android模拟器或者真实的Andriod设备。ADB主要功能有:
- 1.Js天数相加获取新日期function timestampToTime(timestamp) {  
- TypeScript打包 webpack整合通常情况下,实际开发中我们都需要使用构建工具对代码进行打包;TS同样也可以结合构建工具
- 看新闻说Chrome的Javascript引擎很强大,执行速度很快。就随便写了一个1,000,000次的累加放到IE和Chrome下测试,效
- 使用Keras如果要使用大规模数据集对网络进行训练,就没办法先加载进内存再从内存直接传到显存了,除了使用Sequence类以外,还可以使用迭
- MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据。不是所有的数据库管理员、程序员、系统管理员都非
- 介绍在使用matplotlib的过程中,发现不能像matlab一样同时开几个窗口进行比较,于是查询得知了交互模式,但是放在脚本里运行的适合却
- 环境:Pycharm ;其他环境:安装Anaconda最近在做一个小型项目练手,涉及到大量的IP和相关数据处理,所以选用了Python来处理
- 关于最近要在python下做可视化界面的设计,想到之前用QtDesigner来画界面很是方便,当时画完之后都要手动在终端输入 pyuic5