原文转自:http://blog.csdn.net/dspingk/archive/2010/02/20/5312976.aspx
辗转相除法.
当两个数都较大时,采用辗转相除法比较方便.其方法是:
以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数.
例如:求4453和5767的最大公约数时,可作如下除法.
5767÷4453=1余1314
4453÷1314=3余511
1314÷511=2余292
511÷292=1余219
292÷219=1余73
219÷73=3
于是得知,5767和4453的最大公约数是73.
辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数.
///<summary>
///辗转相除法:求两个数的最大公约数
///</summary>
///<param name="num1"></param>
///<param name="num2"></param>
///<returns></returns>
privatestaticintGcd(intnum1,intnum2)
{
intgcd=0;
if(num1==num2)
{
gcd = num1;
}
if(num1>num2)
{
inttmp = num1;
num1 = num2;
num2 = tmp;
}
if(num2 % num1 == 0)
{
gcd = num1;
}
else
{
inttmp = num1;
num1 = num2 % num1;
num2 = tmp;
gcd = Gcd(num1, num2);
}
returngcd;
}
P.S: 最小公倍数 = 二数中的大数/最大公约数)*小数
分享到:
相关推荐
利用辗转相除法求两个数的最大公约数。要求能接受用户的输入,输出最大公约数。 辗转相除法原理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c),其中用(a,b)来表示a和b的最大公约数。(证明过程请参考其它...
C语言程序设计-用辗转相除法求两个整数的最大公约数;.c
辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(319,...
C语言找两个数的最大公约数(辗转相除法)
辗转相除法,求最大公约数和最小公倍数。(网上收集的,自己学习用)。Ubuntu10.04+GCC4.4.3
辗转相除法求最大公约数,这是一种很古老得算法,也很有用高效,有利于大家学习
用碾压法求出两个数的最大公因数,然后将剩下的分子连乘再乘以最大公因数即可获得最小公倍数
辗转相除法 基于c实现的辗转相除法求两个数的最大公约数
简而言之,辗转相除法就是通过反复相除并替换被除数和除数,不断缩小问题规模,最终找到两个数的最大公约数。这种方法不仅简单直观,而且效率高,在计算机科学中有着广泛应用,特别是在处理大整数时效果显著。
辗转相除法求两个数的最大公约数算法
利用辗转相除的方法求两个数的最大公约数,应用C++语言
辗转相除法计算两个整形参数的最大公约数。VC6.0编译通过。
利用辗转相除法求两个数的公约数。利用辗转相除法求两个数的公约数。利用辗转相除法求两个数的公约数。
在C++中用函数递归调用的方法实现辗转相除法求两个整数的最大公因子。
输入两个数,运用辗转相除法求出最大公因子。
2、利用辗转相除法求两个数的最大公约数。要求能接受用户的输入,输出最大公约数。 辗转相除法原理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c),其中用(a,b)来表示a和b的最大公约数。(证明过程请参考...
问题:求A关于模N的逆元B,即要找出整数B,使A×B mod N=1(或A×B=x×N+1),这里要求A和N互素。 方法:辗转相除法(即欧几里德算法) 该算法原用于求两个数的最大公约数,经过变形可用于求模逆元
包含两个算法,一个为辗转相除法,一个为连续整数检测法。而且算法中加入计数法对比两种算法的时间复杂度。
求两个数最大公约数,利用欧几里德算法,辗转相除法。详细内容看资料,留作备份。
VB 求多个数的最大公约数,这应该是个比较... r = m Mod n '辗转相除法求最大公约数 If r = 0 Then Exit Do '找到最大公约数后即退出 m = n n = r Loop big = n '返回这两个数的最大公约数 End Function