证明:(a+b)|(ab)=>gcd(a,b)>1

在做到一道题时碰到了需要从 ( a + b ) ∣ ( a b ) (a+b)|(ab) (a+b)(ab)推出 g c d ( a , b ) > 1 gcd(a,b)>1 gcd(a,b)>1的这个性质

考虑简单证明一下这个:

在证明这个性质之前,我们需要知道另外一个很重要的性质: g c d ( k , a ) = 1 & & g c d ( k , b ) = 1   = > g c d ( k , a b ) = 1 gcd(k,a)=1\&\&gcd(k,b)=1\ =>gcd(k,ab)=1 gcd(k,a)=1&&gcd(k,b)=1 =>gcd(k,ab)=1
先来简单证明一下上述性质:
首先当 k = 1 k=1 k=1时上述性质显然成立.所以下面讨论默认 k   ! = 1 k\ !=1 k !=1
考虑使用反证法来证明,假设 g c d ( k , a b ) = d gcd(k,ab)=d gcd(k,ab)=d,那么我们有 d ∣ k , d ∣ a b d|k,d|ab dk,dab.显然假如我们的 d ∣ a 或 d ∣ b d|a或d|b dadb的话,我们的 g c d ( k , a ) gcd(k,a) gcd(k,a) g c d ( k , b ) gcd(k,b) gcd(k,b)就有一个等于 d d d了,此时与条件矛盾,所以我们的 d d d必须被 a , b a,b a,b各自不同的因子相乘整除.也就是假设 p a pa pa a a a的因子, p b pb pb b b b的因子,此时 d ∣ ( p a ∗ p b ) d|(pa*pb) d(papb).但是此时也意味着d中必含有 a , b a,b a,b中的因子.因为整除意味着d的所有因子被pa,pb覆盖.又因为d的因子也被k覆盖,所以此时k与a,b必然也有公因子.与条件矛盾,所以此时 g c d ( k , a b ) = 1 gcd(k,ab)=1 gcd(k,ab)=1


然后我们考虑证明一开始的式子:
依旧考虑使用反证法来证明:
假设 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1,那么显然我们有 g c d ( a + b , b ) = 1 , g c d ( a + b , a ) = 1 gcd(a+b,b)=1,gcd(a+b,a)=1 gcd(a+b,b)=1,gcd(a+b,a)=1(类似更相损减术).
那么此时我们就有 g c d ( a + b , a b ) = 1 gcd(a+b,ab)=1 gcd(a+b,ab)=1,那么我们此时发现显然 a + b a+b a+b无法被 a b ab ab整除,因为如果整除的话,此时的公因子就是 a + b a+b a+b了,而不是1.

至此证毕

你可能感兴趣的:(c++算法,#,数论,算法)