Python:求最大公约数与最小公倍数(辗转相除与递归两种方法)

您所在的位置:网站首页 最大公约数和最小公倍数应用题解题关键 Python:求最大公约数与最小公倍数(辗转相除与递归两种方法)

Python:求最大公约数与最小公倍数(辗转相除与递归两种方法)

2023-07-16 19:42| 来源: 网络整理| 查看: 265

导读

       最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]

欧几里得算法

       欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。 在这里插入图片描述

递归算法

(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。 解释摘自百度百科侵权请于联系。

方法一 a = int(input("请输入第一个整数")) # 1997 b = int(input("请输入第二个整数")) # 615 y = -1 # 余数 先假设 re = -1 # 除数 def qiou(a, b): global y # 因为是全局变量需要声明 global re while y != 0: # 当y为0 的时候跳出循环 y = a % b re = b qiou(b, y) qiou(a, b) print("最大公约数{}".format(re)) # 输出最大公约数. # 最小公倍数=(a*b)/最大公约数 gbs = (a * b) / re print("最小公倍数{}".format(gbs))

在这里插入图片描述

方法二 def dd(a, b): while (True): temp = a % b a = b b = temp if temp == 0: break print(a) dd(1997, 615)

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3