python求最大公约数和最小公倍数的简单方法
python怎么求最大公约数和最小公倍数
一、求最大公约数
用辗转相除法求最大公约数的算法如下:
两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。
具体代码如下:
def gongyue(a, b): """ 欧几里得算法----辗转相除法 :param a: 第一个数 :param b: 第二个数 :return: 最大公约数 """ # 如果最终余数为0 公约数就计算出来了 while(b!=0): temp = a % b a = b b = temp return a
二、求最小公倍数
求出a,b的最大公约数后,利用gongbei(a,b) = (a*b)/gongyue(a,b) 计算出两个数的最小公倍数:
# 求两个数的最小公倍数 def gongbei(a,b): return a * b / gongyue(a, b)
知识点补充:
1. 求最小公倍数的算法:
最小公倍数 = 两个整数的乘积 / 最大公约数
所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下:
2. 求最大公约数算法:
① 整数A对整数B进行取整, 余数用整数C来表示 举例: C = A % B
② 如果C等于0,则C就是整数A和整数B的最大公约数
③ 如果C不等于0, 将B赋值给A, 将C赋值给B ,然后进行 1, 2 两步,直到余数为0, 则可以得知最大公约数
以上就是本次介绍的全部相关知识点,感谢大家的学习和对我们的支持。
相关推荐
-
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,
-
Python基于递归算法求最小公倍数和最大公约数示例
本文实例讲述了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
-
Python自定义函数实现求两个数最大公约数、最小公倍数示例
本文实例讲述了Python自定义函数实现求两个数最大公约数.最小公倍数.分享给大家供大家参考,具体如下: 1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: ① 整数A对整数B进行取整, 余数用整数C来表示 举例: C = A % B ② 如果C等于0,则C就是整数A和整数B的最大公约数 ③ 如果C不等于0, 将B赋值给A, 将C赋值给B ,然后进行 1, 2
-
Python实现利用最大公约数求三个正整数的最小公倍数示例
本文实例讲述了Python实现利用最大公约数求三个正整数的最小公倍数.分享给大家供大家参考,具体如下: 在求解两个数的小公倍数的方法时,假设两个正整数分别为a.b的最小公倍数为d,最大公约数为c.存在这样的关系d=a*b/c.通过这个关系式,我们可以快速的求出三个正整数的最小公倍数. def divisor(a,b): c = a%b while c>0: a=b b=c c=a%b return b x1 = input("input1:") x2 = input("
-
python求最大公约数和最小公倍数的简单方法
python怎么求最大公约数和最小公倍数 一.求最大公约数 用辗转相除法求最大公约数的算法如下: 两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数.比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数. 具体代码如下: def gongyue(a, b): """ 欧几里得算法----辗转相除法 :param a: 第一个数 :param b: 第二个数 :return: 最大公约数 "
-
python辗转相除法求最大公约数和最小公倍数的实现
目录 辗转相除法求最大公约数和最小公倍数 辗转相除法数学原理 python代码实现 用递归的方式实现 Python3 20.辗转相除法 算法分析 源代码 结果截图 辗转相除法求最大公约数和最小公倍数 辗转相除法数学原理 辗转相除法也称欧几里得算法,是用来求两个正整数的最大公约数的算法.接下来我们用实例来解释一下.假如我们需要求12和21的最大公约数,用辗转相除法是这样实现的: 21 / 12 = 1 (余 9) 12 / 9 = 1(余 3) 9 / 3 = 3 (余 0) 至此,得到21与12
-
Python实现求最大公约数及判断素数的方法
本文实例讲述了Python实现求最大公约数及判断素数的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python def showMaxFactor(num): count = num / 2 while count > 1: if num % count == 0: print 'largest factor of %d is %d' % (num, count) break #break跳出时会跳出下面的else语句 count -= 1 else: prin
-
PHP编程求最大公约数与最小公倍数的方法示例
本文实例讲述了PHP编程求最大公约数与最小公倍数的方法.分享给大家供大家参考,具体如下: //求最大公约数 function max_divisor($a,$b) { $n = min($a, $b); for($i=$n; $i>1; $i--) { if (is_int($a/$i)&&is_int($b/$i)) { return $i; //此处如果用echo $i;则输出结果为432:故应区分echo.return的区别 } } return 1; } //求最小公倍数 f
-
C++ 实现求最大公约数和最小公倍数
C++ 实现求最大公约数和最小公倍数 最大公约数 辗转相除法: int maxDivisor(int a, int b) { int c = b; while (a%b != 0) { c = a%b; a = b; b = c; } return c; } 辗转相减法: int maxDivisor(int a, int b) { while (a != b) { if (a>b) a = a - b; else b = b - a; } return a; } 感谢阅读,希望能帮助到大家,谢
-
java求最大公约数与最小公倍数的方法示例
本文实例讲述了java求最大公约数与最小公倍数的方法.分享给大家供大家参考,具体如下: Gongyueshu.java文件: package math; public class Gongyueshu { public static void main(String[] args) { //从控制台输入两个数据 int m = Integer.parseInt(args[0]); int n = Integer.parseInt(args[1]); int y = 1 ; int b = 1;
-
python获取list下标及其值的简单方法
当在python中遍历一个序列时,我们通常采用如下的方法: for item in sequence: process(item) 如果要取到某个item的位置,可以这样写: for index in range(len(sequence)): process(sequence[index]) 另一个比较好的方式是使用python内建的enumerate函数: enumerate(sequence,start=0) 上述函数中,sequence是一个可迭代的对象,可以是列表,字典,文件对象等等.
-
python爬虫设置每个代理ip的简单方法
python爬虫设置每个代理ip的方法: 1.添加一段代码,设置代理,每隔一段时间换一个代理. urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy.假如一个网站它会检测某一段时间某个 IP 的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,网站君都不知道是谁在捣鬼了,这酸爽! 下面一段代码说明了代理的设置用法. import urllib2 enable_proxy = True proxy_h
-
递归法求最大公约数和最小公倍数的实现代码
数学原理: 设有两个数num1和num2,假设num1比较大.令余数r = num1 % num2. 当r == 0时,即num1可以被num2整除,显然num2就是这两个数的最大公约数. 当r != 0时,令num1 = num2(除数变被除数),num2 = r(余数变除数),再做 r = num1 % num2.递归,直到r == 0. 以上数学原理可以用具体的两个数做一下分析,这样容易理解.代码实现(求最大公约数): 复制代码 代码如下:
-
将Python代码打包为jar软件的简单方法
py 写东西快 但是java 生态广 比如大数据 py 虽然好 但是利用不到java的整个的生态的代码 scala 虽然也好但是毕竟 有些库 需要自己写的多 虽然也很简单 ,但是查文档也很麻烦 那么 问题来了 最简单的的方式就是直接把py 打包 jar 那么 问题又来了 py 打包成java 挺麻烦的 官方文档看不懂 答案 有了 写了个 包 https://github.com/yishenggudou/jythontools 搞这个事情 timger-mac:test timger$ pyth
随机推荐
- 正则表达式详述第一部
- 基于asyncio 异步协程框架实现收集B站直播弹幕
- Javascript 类与静态类的实现
- PHP 面向对象改进后的一点说明第1/2页
- 微信支付开发交易通知实例
- JavaScript的9种继承实现方式归纳
- [js]javascript与剪贴板交互
- Windows平台下MySQL常用操作与命令
- thinkPHP简单实现多个子查询语句的方法
- Android利用手势完成屏幕密码锁功能
- JQuery实现的图文自动轮播效果插件
- JS实现的论坛Ajax打分效果完整实例
- java容器详细解析
- java 中的乱码问题汇总及解决方案
- JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
- Android单个RecyclerView实现列表嵌套的效果
- 经典排序算法之冒泡排序(Bubble sort)代码
- python读取中文txt文本的方法
- 深入理解Spring中的Lookup(方法注入)
- C语言+shell实现linux网卡状态检测