`
xifangyuhui
  • 浏览: 188648 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转]欧几里得算法(辗转相除法)求最大公约数

阅读更多

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 

定理:gcd(a,b) = gcd(b,a mod b) 
证明:a可以表示成a = kb + r,则r = a mod b 

          假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 
           因此d是(b,a mod b)的公约数 

           假设d 是(b,a mod b)的公约数,则 d | b , d |r ,但是a = kb +r 因此d也是(a,b)的公约数 
           因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证。 

欧几里德算法就是根据这个原理来做的,其算法用JAVA语言描述为:

 

public int gcd(int m, int n) {
		if(n > m) {
			n = n ^ m;
			m = m ^ n;
			n = n ^ m;
		}
		while(n != 0) {
			int temp = m % n;
			m = n;
			n = temp;
		}
		return m;
	}

 

 


当然还有个递归版的, 其实gcd函数一般不会递归调用很多次, 所以递递归还是不错的:
public int gcd(int a, int b)
{
    if (b > 0)
    {
        return gcd(b, a % b);
    }
    return a;
} 

 

转自:http://www.cnblogs.com/dah/archive/2007/03/06/666114.html

分享到:
评论

相关推荐

    用辗转相除法求最大公约数

    根据给定的信息,我们可以提取并总结出以下与“用辗转相除法求最大公约数”相关的知识点: ### 1. 辗转相除法(欧几里得算法)原理 辗转相除法是一种用于计算两个正整数最大公约数(Greatest Common Divisor, GCD...

    辗转相除法求最大公约数,计算过程说明和C语言实现

    辗转相除法,又称为欧几里得算法,是一种古老且高效的求解两个非负整数最大公约数(Greatest Common Divisor, GCD)的方法。该算法基于一个基本原理:两个整数a和b(假设a>b)的最大公约数等于b和a除以b的余数的最大...

    欧几里得辗转相除法原理

    欧几里得辗转相除法,又称欧几里得算法,是古希腊数学家欧几里得提出的一种求解最大公约数(Greatest Common Divisor, GCD)的有效方法。这个算法基于以下基本原理:两个正整数a和b(a>b),它们的最大公约数等于a...

    辗转相除法求最大公因子/最大公约数

    在本主题中,我们将深入探讨如何使用辗转相除法(也称为欧几里得算法)来求解两个数的最大公因子。 辗转相除法,源于古希腊数学家欧几里得的一项伟大发现,是一种高效计算最大公因子的方法。其基本思想是:对于任何...

    Java中使用辗转相除法求最大公约数

    辗转相除法,又称欧几里得算法(Euclidean Algorithm),是一种高效的求解最大公约数的方法。该算法基于这样一个事实:两个正整数a和b(a>b)的最大公约数等于a除以b的余数c和b之间的最大公约数。如果余数为0,那么b...

    辗转相除法(算法源代码)

    辗转相除法,又称欧几里得算法,是求解两个正整数最大公约数(Greatest Common Divisor, GCD)的一种古老而有效的方法。这个算法基于以下定理:对于任意两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和...

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

    在数学和计算机科学中,求解两个整数的最大公约数(Greatest Common Divisor,GCD)是一个常见的问题,辗转相除法(也称欧几里得算法)是一种简单而有效的方法。Python作为一种高级编程语言,它提供了丰富的库和简洁...

    算法_用欧几里得算法求最大公因数_

    欧几里得算法,也称为辗转相除法,是解决这一问题的经典算法,其历史可以追溯到古希腊数学家欧几里得的著作《几何原本》。本篇将详细介绍欧几里得算法及其扩展形式,并展示如何在编程中实现。 欧几里得算法基于以下...

    欧几里得算法-辗转相除法-视频加文档原理说明.zip

    欧几里得算法,又称辗转相除法,是古希腊数学家欧几里得提出的一种求解两个正整数最大公约数(Greatest Common Divisor, GCD)的有效方法。这个算法基于一个基本事实:两个正整数a和b(a>b)的最大公约数等于a除以b...

    信息安全与保密概论(华中科技大学)辗转相除法求模的逆元

    本篇将详细介绍如何使用辗转相除法,也称欧几里得算法,来求解模的逆元。 辗转相除法最初是为了解决两个正整数的最大公约数问题。然而,通过一定的变形,这个算法也可以用来寻找一个整数A关于模N的逆元B,使得A×B ...

    辗转相除法证明 辗转相除法证明

    标题与描述均提到了“辗转相除法证明”,这一表述实际上是在强调对于辗转相除法(也称为欧几里得算法)的证明过程。辗转相除法是一种在数学领域广泛应用的算法,主要用于求解两个正整数的最大公约数(GCD)。下面,...

    辗转相除法计算乘法逆元及C语言实现-密码学

    2. **辗转相除法(欧几里得算法)**:一种用于求最大公约数(GCD)的经典算法。其基本思想是利用较大的数除以较小的数,然后用较小的数去除以余数,如此循环直到余数为0为止,此时较小的数就是两数的最大公约数。 3. ...

    欧几里德算法求最大公约数——C++代码

    欧几里得算法,也称为辗转相除法,是计算两个正整数最大公约数(Greatest Common Divisor, GCD)的一种经典方法。该算法基于以下原理:两个正整数a和b(a>b)的最大公约数等于a除以b的余数c和b之间的最大公约数。...

    JAVA的欧几里得算法 最大公倍数

    通过欧几里得算法求到最大公约数,然后得出最小公倍数

    辗转相除法求最大公约,两个数的最大公约数

    辗转相除法,又称欧几里得算法,是一种古老的用于计算两个正整数最大公约数(Greatest Common Divisor, GCD)的方法。该方法基于一个数学原理:对于任意两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b...

    辗转相除法,也称为欧几里得算法,是求解两个整数的最大公约数的一种有效方法

    辗转相除法求最大公约 辗转相除法,也称为欧几里得算法,是求解两个整数的最大公约数的一种有效方法。

    最大公约数辗转相除法

    ### 最大公约数辗转相除法 #### 一、引言 最大公约数(Greatest Common Divisor,简称 GCD)是指能同时整除两个或多个整数的最大正整数。在数学和计算机科学领域中,求解最大公约数是一个非常基础且重要的问题。...

    基于c实现的辗转相除法求两个数的最大公约数

    辗转相除法,又称欧几里得算法,是求解两个正整数最大公约数(Greatest Common Divisor,GCD)的一种经典方法。这种方法由古希腊数学家欧几里得提出,至今仍被广泛应用于计算机科学中。在C语言中实现辗转相除法,...

Global site tag (gtag.js) - Google Analytics