欧几里得算法解决了这个问题:
给定的整数
一个,b,找到
d=肾小球囊性肾病(一个,b).
如果质因数分解
一个和
b都是已知的,求最大公约数很简单。让
一个=p1问1p2问2...pn问n和
b=p1r1p2r2...pnrn,在那里
p我正素数和
问我,r我≥0.然后
gcd(一个,b)=p1最小值(问1,r1)p2最小值(问2,r2)...pn最小值(问n,rn).
然而,一般来说,<一个href="//www.parkandroid.com/wiki/prime-factorization/" class="wiki_link" title="保理gydF4y2B一个" target="_blank">保理从计算的角度来看,整数是一个困难的问题。欧几里得算法提供了一种快速的确定方法
d在不知道质因数的情况下
一个或
b.以下是这些步骤的概要:
- 让
一个=x,
b=y.
- 鉴于
x,y,可以使用<一个href="//www.parkandroid.com/wiki/division-algorithm/" class="wiki_link" title="辗转相除法gydF4y2B一个" target="_blank">辗转相除法写
x=y问+r,
0≤r<∣y∣.
- 如果
r=0,停止和输出
y;这是GCD
一个,b.
- 如果
r=0,取代
(x,y)通过
(y,r).请转步骤2。
是什么
gcd(16457,163.8)?
应用欧几里得算法:
16457=163.8=77=21=14=163.8×1077×2121×3.14×17×2+77+21+14+7+0.
当我们到达时,进程停止了
0,我们获得
7=gcd(7,14)=gcd(14,21)=gcd(21,77)=gcd(77,163.8)=gcd(163.8,16457).□
2442和17171的最大公因数是什么?
请注意试着不要用计算器。
上面例子的最后一行给出了欧几里德算法计算gcd的证明。也就是说,只要证明算法中每一对数字的gcd是相同的就足够了,因为最后一对数字是相同的
(x,y)与
y∣x,所以
肾小球囊性肾病(x,y)=y,欧几里得算法的结果是什么
肾小球囊性肾病(一个,b).下面是这种说法的证明:
假设
一个=b问+r.如果
d∣一个,d∣b,然后
d∣r,所以
肾小球囊性肾病(一个,b)≤肾小球囊性肾病(b,r).但是,如果
e∣b,e∣r,然后
e∣一个,所以
肾小球囊性肾病(b,r)≤肾小球囊性肾病(一个,b).所以gcd是相等的。
□
gcd(2015!+1,2016!+1)=?
符号:
-
gcd(一个,B)表示这两个数的最大公约数
一个和
B.
(IMO 59)证明这一点
14n+3.21n+4对每个正整数都是不可约的吗
n.
14n+3.21n+4不可约的当且仅当分子和分母没有公因数时,即它们的最大公因数是1。运用欧几里得算法,
21n+4=14n+3.=7n+1=1×(14n+3.)2×(7n+1)(7n+1)×1+7n+1+1+0.
因此,
gcd(21n+4,14n+3.)=1,说明这个分数是不可约的。
□