`
angellin0
  • 浏览: 115436 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python取最大公因数

阅读更多
 最大公因数, 又称最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf),指某几个整数共有因子中最大的一个。
     早在公元前300年左右,欧几里得就在他的著作《几何原本》中给出了高效的解法——辗转相除法。辗转相除法使用到的原理很聪明也很简单,假设用f(x, y)表示x,y的最大公约数,取k = x/y,b = x%y,则x = ky + b,如果一个数能够同时整除x和y,则必能同时整除b和y;而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数是相同的,其最大公约数也是相同的,则有f(x, y)= f(y, y % x)(y > 0),如此便可把原问题转化为求两个更小数的最大公约数,直到其中一个数为0,剩下的另外一个数就是两者最大的公约数。例如,12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数。
 
  7 def gcd(a, b):
  8     """通过辗转相除法取最大公因数"""
  9     if a < b:   #调换位置,使得a > b,以便a % b取余
 10         a, b = b, a
 11 
 12     y = a % b
 13     if y == 0:
 14         return b
 15     else:
 16         a, b = b, y
 17         return gcd(a,b)
 18 
 19 print gcd(35,100)
分享到:
评论

相关推荐

    Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例

    在计算机编程中,特别是在使用Python语言进行开发时,经常需要对两个数值进行最大公约数(GCD)和最小公倍数(LCM)的计算。最大公约数是指两个或多个整数共有约数中最大的一个,而最小公倍数是指能被两个或多个整数...

    求两数最大公约数求两数最大公约数

    最大公约数(Greatest Common Divisor,GCD)也被称为最大公因数,是两个或多个非零整数共有约数中最大的一个。在数学上,最大公约数可以用多种方法来计算,例如欧几里得算法、辗转相除法、更相减损法等。 1. **...

    n个整数的最大公约数,n由键盘输入

    在编程领域,最大公约数(Greatest Common Divisor, GCD)是一个常见的数学概念,用于找出两个或多个整数的最大公共除数。本问题聚焦于寻找n个整数的最大公约数,其中n是从键盘输入的。这样的程序设计有助于理解递归...

    python如何求解两数的最大公约数

    在Python编程语言中,求解两个数的最大公约数(Greatest Common Divisor,GCD)是一个常见的数学问题,尤其在处理数字操作时。本篇文章将详细介绍四种不同的方法来解决这个问题,包括它们的时间复杂度和适用场景。 ...

    最大公约数和最小公倍最大公约数和最小公倍

    在编程领域,特别是使用Python语言时,理解和计算两个或多个整数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)是基础数学概念的重要应用。这两个概念在解决算法问题、...

    求最大公约数最小公倍数

    2. **质因数分解法**:将两个数分别分解为质因数的乘积,然后取所有共同质因数的乘积得到最大公约数。 3. **辗转相除法**(也称为欧几里得法的一种实现):通过连续用较大数除以较小数,交换余数和除数,直至余数为0...

    Python实现的求解最大公约数算法示例

    它首先对两个数进行质因数分解,然后遍历字典的键(质因数),比较两个数的质因数分解结果,找出共有的质因数,并取较小的指数,最后计算它们的乘积,得到最大公约数。 8. Python中的数学运算操作:文件中涉及了...

    gcd.rar_最大公约数

    在编程领域,最大公约数(Greatest Common Divisor, GCD)是一个常见的概念,它指的是两个或多个非零整数的最大公共除数。这个概念在数学和计算机科学中都有着广泛的应用,例如在算法设计、数论问题、代码优化等方面...

    新建 WinRAR 压缩文件_最大公约数_

    4. 质因数分解法:先对两个数进行质因数分解,然后取所有公共质因数的乘积,得到最大公约数。这种方法适用于理解数的结构,但在实际计算中不如前面的方法高效。 压缩文件列表中的"zuidagongyueshu"系列文件可能是用...

    Python基于辗转相除法求解最大公约数的方法示例

    在Python中,还可以使用内置的`math`库中的`gcd`函数直接求解最大公约数,如`import math; math.gcd(55, 120)`,这通常会提供更好的性能。 在学习和应用辗转相除法的过程中,可以结合其他算法进行比较和实践,比如...

    GYS.rar_求公约数

    在计算机科学领域,最大公约数(Greatest Common Divisor,简称GCD)是两个或多个非零整数的公共因子中最大的一个。求解最大公约数是基础数学和算法设计中的一个重要概念,它广泛应用于代码优化、数据压缩、加密算法...

    GCD.rar_最大公

    在编程领域,最大公因数(Greatest Common Divisor,简称GCD)是计算理论中的一个基础概念,常用于简化运算、求解线性同余方程等。本压缩包"**GCD.rar_最大公**"提供的内容显然是关于如何编写程序来计算两个数的最大...

    gcd.rar_gcd_gcd.a_公约数

    标题 "gcd.rar_gcd_gcd.a_公约数" 暗示了这是一个关于计算两个数的最大公约数(Greatest Common Divisor, GCD)的程序,可能是用某种编程语言实现的,例如C、C++或Python。文件名 "gcd.a" 可能是程序的可执行文件或...

    python基础实例的汇总讲解.pdf

    最大公约数是指两个或多个数字的最大公因数。例如,12 和 15 的最大公约数是 3。 斐波那契数列 斐波那契数列是一个著名的数列,每个数字都是前两个数字的和。例如,1、1、2、3、5、8、13 等都是斐波那契数列的前几...

    THE GREATEST COMMON DIVISOR gcd(N,M).pdf

    给定两个整数N和M,其中N &gt; M,可以通过连续取余数的方式求解最大公因数。 - **步骤**: 1. 将N除以M得到余数r1; 2. 如果r1为0,则M为最大公因数; 3. 如果r1不为0,用M除以r1得到新的余数r2; 4. 重复以上...

    GCD.rar_gcd

    2. **辗转相除法**:这是欧几里得算法的一种直观表述,通过不断用较大的数除以较小的数,然后取余数,重复此过程,直至余数为0,最后的除数就是最大公约数。 3. **更相减损法**:另一种古老的方法,通过不断用较大...

    python程序设计教学基础实例-课程word公开课.docx

    数问题可以分为质数、最大公约数和斐波那契数列三种类型。 约瑟夫问题是 Python 程序设计的基础知识点之一,该知识点旨在解决如何使用 Python 编程语言实现约瑟夫问题。约瑟夫问题是一种古典问题,用于解决数学问题...

    Solving-greatest-common-divisor.zip_M?n

    2. **质因数分解法**:将两个数分别分解成质因数的乘积,然后取所有质因数的最低次幂的乘积作为最大公约数。 3. **辗转相除法**:又称更相减损术,但效率低于欧几里得算法。 **最小公倍数(Least Common Multiple,...

    (完整版)python真题程序填空阅读填空程序试题.docx

    这些题目主要涵盖Python编程的基础知识,包括循环、条件判断、字符串操作、算术运算、日期处理、算法(辗转相除法求最大公约数)、函数定义以及递归。下面是每个问题的详细解答: 1. 程序填空中的第一段代码,缺失...

    GCD.rar_源码

    在编程中,寻找两个整数的最大公约数通常是通过欧几里得算法来完成的,该算法基于以下原理:两个正整数a和b的最大公约数等于a除以b的余数c和b之间的最大公约数,如果b为0,则a即为最大公约数。 【描述】"求sa和tb的...

Global site tag (gtag.js) - Google Analytics