龙空技术网

两个数的最大公约数求解的改进的欧几里得算法

用户问苍茫大地 139

前言:

今天同学们对“欧几里得算法最大公约数”大约比较重视,看官们都需要知道一些“欧几里得算法最大公约数”的相关内容。那么小编也在网络上汇集了一些对于“欧几里得算法最大公约数””的相关文章,希望大家能喜欢,大家快快来学习一下吧!

巳知:两个数的最大公约数求解的欧几里得算法如下:

利用被除数=商×除数+余数(在两个数中,取被除数大于除数),在算得第一个具体的被除数=商×除数+余数后,其中的除数就作为下一个具体的被除数=商×除数+余数的被除数,余数就作为除数,以后的具体的被除数=商×除数+余数就不断重复上述方法,直到余数为0为止,那么这时的除数就是最大公约数.

例.求1970与1066的最大公约数.

解:1970=1×1066+904

1066=1×904+162

904=5×162+94

162=1×94+68

94=1×68+26

68=2×26++16

26=1×16+10

16=1×10+6

10=1×6+4

6=1×4+2

4=2×2+0

所以,1970与1066的最大公约数为2.

现在讲改进的欧几里得算法.只是将欧几里得算法中的“余数”换为“min【余数,除数-余数】”即可.比较式的计算非常简单,其计算量相对于求出具体的被除数=商×除数+余数的计算量几乎忽略不计.

对上一个例题,改进的欧几里得算法如下:

1970=1×1066+904

(min【904,1066-904】=min【904,162】=162)

1066=6×162+94

(min【94,162-94】=68)

162=2×68+26

(min【26,68-26】=26)

68=2×26+16

(min【16,26-16】=10)

26=2×10+6

(min【6,10-6】=4)

10=2×4+2

(min【2,4-2】=2)

4=2×2+0

所以,最大公约数当然就是欧几里得算法所算得最大公约数的结果.

用欧几里得算法是11个具体的被除数=商×除数+余数,而用改进的欧几里得算法只有7个.

标签: #欧几里得算法最大公约数