数论基础,欧几里得定理


//$LaTeX$ 炸了(可能是我不会用),将就看吧

定理 gcd(a,b)=gcd(b,a%b)

证明

设 $c=gcd(a,b)$ 么 $a$ 为 $mc$ , $b$ 为 $nc$ 令 $a=kb+r$ 明 $gcd(b,r)=c$ 

$∵r=akb=mcknc$ , $gcd(b,r)=gcd(nc,mcknc)=gcd(nc,(mkn)c)$ 证 $gcd(n,mkn)=1$ 

设 $n=xd,mkn=yd$么 $m=kn+yd=kxd+yd$ 而 $a=(kx+y)cd,b=xcd$ 

于是 $gcd(a,b)$ 为 $gcd((kx+y)cd,xcd)=cd$ 

于 $c$ 么 $d=1$ 即 $gcd(n,mkn)=1$ 

代码

int gcd(int a, int b) {
    return b ? gcd(b, a % b) : a;
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM