一、穷举法求最大公约数

可以利用循环穷举的方法,看是否能整除这三个数。若能整除这三个数,则输出其中的最小的数即为最小公倍数。

代码如下:

def Sort_xyz(x,y,z,):l = [x,y,z]l.sort()return l def Gcd(x,y,z):x,y,z = Sort_xyz(x,y,z)for i in range(1,z + 1):if x % i == 0 and y % i == 0 and z % i == 0:gcd = ireturn gcd

二、辗转相除法

又名欧几里德算法,用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。                                 求三个数时先算出两个数的最大公约数,然后用这个数与第三个数求最大公约数,所得数字即为最大公约数

代码如下

#将三个数由小到大排列
def Sort_xyz(x,y,z,):l = [x,y,z]l.sort()return l def Gcd(x,y,z):x,y,z = Sort_xyz(x,y,z)   while y != 0:temp = yy = x % yx = temp if x < z:temp = x x = z z = tempwhile z != 0:temp = zz = x % zx = tempreturn x

三、辗转相减法

即尼考曼彻斯法。例如 :两个自然数35和14,用大数减去小数,35-14=21,21-14=7,此时,7小于14,要做一次交换,把14作为被减数,即14-7=7,再做一次相减,结果为0,这样也就求出了最大公约数7。

代码如下:

#将三个数由小到大排列
def Sort_xyz(x,y,z,):l = [x,y,z]l.sort()return l def Gcd3(x,y,z):x,y,z = Sort_xyz(x,y,z)  while x != y :if x > y:x = x - yelse:y = y - xif y < z:temp = y y = z z = temp  while y != z :if y > z:y = y - zelse:z = z - yreturn z

四、穷举法求最小公倍数

先求出三个数中最大的一个数max,用max乘以1,2,3,4........

当max*n%num1==0 and max*n%num2==0 and max*n%num3==0

这时max*n即最小公倍数

代码如下:

#将三个数由小到大排列
def Sort_xyz(x,y,z,):l = [x,y,z]l.sort()return l def Lcm1(x,y,z):x,y,z = Sort_xyz(x,y,z)i = 1j = 0while True:j = x * i if j%x==0 and j%y==0 and j%z==0:breaki += 1return j

五、短除法求最小公倍数

最小公倍数=为2*5*2=20

计算三个数时先求出两个数的最小公倍数,在和另一个数求最小公倍数

代码如下:

#将三个数排列
def Sort_xyz(x,y,z,):l = [x,y,z]l.sort()return l def Lcm2(x,y,z):lcm = 1k = max(x,y,z)for i in range(2,x+1):#对循环是否结束进行标记flag = Truewhile flag:flag = Falseif x % i == 0:x = x / iflag = Trueif y % i == 0:y = y / iflag = Trueif z % i == 0:z = z / iflag = Trueif flag:lcm *= i k = max(x,y,z)return lcm

六、公式法

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。

代码如下:

def Lcm3(x,y,z):gcd = Gcd(x,y)lcm = (x*y)/gcdgcd = Gcd(lcm,z)lcm = (lcm*z)/gcdreturn lcm

python求三位数的最大公约数和最小公倍数(3种算法)相关推荐

  1. python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』

    python:用递归的方法编写一个函数gys(x,y),计算两个数字的最大公约数. (提示,大的 def gys(x,y): a,b=max(x,y),min(x,y) c=a%b if c==0: ...

  2. 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数

    第二次作业 题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整 ...

  3. 求三个数的最大公约数和最小公倍数

    题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约数 ...

  4. Python求一组数字的最大公约数和最小公倍数

    一.先来看求最大公约数 1).利用gcd函数 math库里面有个gcd函数能直接求出两个数字的最大公约数,遇到求一组数字的最大公约数的时候,加一个循环就好,如下: import math def gc ...

  5. java程序:求三个数的最大公约数和最小公倍数

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; /**main方法用于测试结果**/publi ...

  6. python求两个数的最大公约数和最小公倍数_Python求两个数最大公约数、最小公倍数...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. python数字组合算法_python - 简单算法题 - 求三位数组合

    求三位数组合 lst = [3, 6, 2, 7] 这四个数字能组成多少个互不相同且无重复数字的三位数?比如362算一个,326算一个,请逐个输出他们 思路分析 从4个数里面取3个数,且不重复,然后进 ...

  8. 求N个数的最大公约数和最小公倍数以及Hankson逆问题(python)

    求N个数的最大公约数和最小公倍数以及Hankson"逆问题"(python) 一.题目要求 1.基本要求: 求N个数的最大公约数和最小公倍数.用C或C++或java或python语 ...

  9. python求两个数的最大公约数穷举法_五十九、如何求N个数的最大公约数和最小公倍数...

    「@Author:Runsen」 ❝ 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化.「---- Runsen」 ❞ 上次介绍了短除法的因式分解,下面正式进入求解:「两个及 ...

最新文章

  1. php和架构,结构和架构的区别是什么?
  2. mysql整理碎片和显示语句错误
  3. 从java到c_怎样快速的从 Java 转到 C ?
  4. android 命令行创建模拟器,在命令行创建、删除和浏览AVD、使用android模拟器
  5. Android常见控件— — —EditText
  6. Acwing第 15 场周赛【未完结】
  7. python leetcode_LeetCode刷题——第8天(python)
  8. 倒数日怎么设置起始日_起始价131亿!杭州江河汇流区85万方综合体招标延期
  9. pyltp在ubuntu20.04下面的安装办法
  10. 一些顿悟,和新的开始!
  11. 源码安装mysql数据库_Linux下源码安装mysql数据库
  12. defconfig、 .config
  13. python爬酷狗音乐_良心推荐!一个Python高手必读的库,真香!
  14. 盾神与砝码称重java_[蓝桥杯][算法提高VIP]盾神与砝码称重-题解(Java代码)
  15. 如果可以再读一次研究生
  16. Linux符号连接的层数过多
  17. Axis2 生成客户端
  18. HDUOJ-------1753大明A+B(大数之小数加法)
  19. thread/threading——Python多线程入门笔记
  20. mysql语句解析_MYSQL中SQL执行分析

热门文章

  1. A. Equalize Prices Again
  2. js实现微信禁止h5网页下拉,禁止微信h5页面默认下拉
  3. APP第三方安全检测
  4. 日撸代码300行:第二天
  5. ubuntu 8000端口被占用
  6. 网络编程之端口:端口号为什么常见是8000、8080、8888...
  7. 【Linux】Linux关闭防火墙、关机重启和查看系统运行级别
  8. 云原生可观测性平台-云监控
  9. python ppt自动生成_实战 | Python自动生成PPT调研报告
  10. Heart Rate Variability Analysis with the HRV Toolkit: Basic Time and Frequency Domain Measures