用辗转相除法求最大公约数
- 格式:docx
- 大小:14.26 KB
- 文档页数:3
;
≠ {
;
;
;
}
;
}
代码(递归)
求两数地最大公约数
();
( );
;
其中“ ”是指取÷地余数.
例如,和地最大公因子是,这可由下列步骤看出:
只要可计算余数都可用辗转相除法来求最大公因子.这包括多项式、复整数及所有欧几里德定义域().资料个人收集整理,勿做商业用途
辗转相除法地运算速度为(),其中为输入数值地位数.
如果和是除以地商及余数,即,则()().资料个人收集整理,勿做商业用途
证明是这样地:设(),()
()
能被整除,并且也能被整除,则由推论得:也能被整除
由推论得:也能被整除
而,即也能被整除,所以
或
()
能被整除,并且也能被整除,则由推论得:也能被整除
由推论得:也能被整除
而,即也能被整除,所以
例如计算(, )
在介绍这个方法之前,先说明整除性地一些特点(下文地所有数都是正整数,不再重覆),我们可以这样给出整除性地定义:资料个人收集整理,勿做商业用途
对于二个自然数和,若存在正整数,使,则能被整除,为地因子,为地倍数.
如果能被整除,并且也能被整除,则为、地公因数(公有因数).
由此我们可以得出以下推论:
推论、如果能被整除(),若为正整数,则也能被整除()
百科名片
辗除法(ǎú ǎ)——辗转相除法,又名欧几里德算法()乃求两个正整数之最大公因子地算法.它是已知最古老地算法,其可追溯至年前.它首次出现于欧几里德地《几何原本》(第卷,命题和)中,而在中国则可以追溯至东汉出现地《九章算术》.它并不需要把二数作质因子分解.资料个人收集整理,勿做商业用途
证明:
设两数为、(<),求它们最大公约数(、)地步骤如下:用除,得(≤).若,则(,);若≠,则再用除,得(≤).若,则(,),若≠,则继续用除,……如此下去,直到能整除为止.其最后一个非零余数即为(,).资料个人收集整理,勿做商业用途
辗转相除法原理及其详细证明如下:
“辗转相除法”又叫做“欧几里得算法”,是公元前年左右地希腊数学家欧几里得在他地著作《几何原本》提出地.利用这个方法,可以较快地求出两个自然数地最大公因数,即或叫做.资料个人收集整理,பைடு நூலகம்做商业用途
最大公约数(,简写为;或,简写为)资料个人收集整理,勿做商业用途
所谓最大公因数,是指几个数地共有地因数之中最大地一个,例如和地最大公因数是,记作().资料个人收集整理,勿做商业用途
[编辑]算法
辗转相除法是利用以下性质来确定两个正整数和地最大公因子地:
.若是÷地余数,则
() ()
.和其倍数之最大公因子为.
另一种写法是:
. ÷,令为所得余数(≤<)
若,算法结束;即为答案.
.互换:置←,←,并返回第一步.
[编辑]虚拟码
这个算法可以用递归写成如下:
(, ) {
<>
(, );
;
}
或纯使用循环:
推论、如果能被整除(),也能被整除(),则(±)也能被整除
因为:将二式相加:()同理二式相减:--(-)
所以:(±)也能被整除
推论、如果能被整除(),也能被整除(),则
因为:因为、均为正整数,所以
所以:
辗转相除法是用来计算两个数地最大公因数,在数值很大时尤其有用,而且应用在电脑程式上也十分简单.其理论如下:资料个人收集整理,勿做商业用途
(, ) *
(, ) *
(, ) *
(, ) *
扩展阅读:
辗转相除法有很多应用,它甚至可以用来生成全世界不同文化中地传统音乐节奏,在现代密码学方面,它是算法(一种在电子商务中广泛使用地公钥加密算法)地重要部分.它还用来解丢番图方程,寻找满足中国剩余定理地数,或者求有限域地倒数.辗转相除法还可以用来构造连分数,在施图姆定理和一些整数分解算法中也有应用.辗转相除法是现代数论地基本工具.资料个人收集整理,勿做商业用途