數論基礎,歐幾里得定理


//$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