GCD的一个性质
G C D ( a , b ) = G C D ( a − b , b ) GCD(a,b)=GCD(a-b,b) GCD(a,b)=GCD(a−b,b)
- 这是辗转相除法和辗转相模法的依据
- 没有想到这个性质所以想了好久,最后就去看题解了
- 我…
证明
g : = gcd ( a , b ) , k a : = a / g , k b : = b / g ( gcd ( k a , k b ) = 1 ) ∵ a = k a g , b = k b g ∴ gcd ( a − b , b ) = gcd ( ( k a − k b ) g , k b g ) = gcd ( k a − k b , k b ) g assume h : = gcd ( k a − k b , k b ) ≠ 1 then ( k a − k b ) m o d h = k a m o d h = 0 , and k b m o d h = 0. then gcd ( k a , k b ) > 1 ∴ gcd ( k a − k b , k b ) = 1 ∴ gcd ( a − b , b ) = g g:=\gcd(a,b),k_a:=a/g,k_b:=b/g\ (\gcd(k_a,k_b)=1)\\\because a=k_a g,b=k_bg\\\therefore \gcd(a-b,b)=\gcd((k_a-k_b)g,k_bg)\\=\gcd(k_a-k_b,k_b)g\\\text{assume }h:=\gcd(k_a-k_b,k_b)\neq1\\\text{then }(k_a-k_b)\mod h=k_a\mod h=0,\\\text{and }k_b\mod h=0.\\\text{then }\gcd(k_a,k_b)>1\\\therefore \gcd(k_a-k_b,k_b)=1\\\therefore \gcd(a-b,b)=g g:=gcd(a,b),ka:=a/g,kb:=b/g (gcd(ka,kb)=1)∵a=kag,b=kbg∴gcd(a−b,b)=gcd((ka−kb)g,kbg)=gcd(ka−kb,kb)gassume h:=gcd(ka−kb,kb)=1then (ka−kb)modh=kamodh=0,and kbmodh=0.then gcd(ka,kb)>1∴gcd(ka−kb,kb)=1∴gcd(a−b,b)=g
- 英语不好,证明也比较复杂,但应该是对的.
推广
gcd
i
=
1
n
a
i
=
gcd
(
a
1
,
gcd
i
=
2
n
a
i
+
(
k
a
∗
a
1
)
)
\gcd\limits_{i=1}^na_i=\gcd(a_1,\gcd\limits_{i=2}^na_i+(k_a*a_1))
i=1gcdnai=gcd(a1,i=2gcdnai+(ka∗a1))
例题 codeforces 1459C