以下大部分来自《ACM/ICPC程序设计与分析》
已知:gcd(a,b) =gcd(b,a%b)
求整数a和b的最大公约数的欧几里得算法。作辗转相除如下: {\text{求整数a和b的最大公约数的欧几里得算法。作辗转相除如下:}} 求整数a和b的最大公约数的欧几里得算法。作辗转相除如下:
g c d ( a , b ) 对应 a = b q 0 + r 1 ( r 1 < b ) {gcd(a,b)}\qquad \qquad {\text{对应}} \qquad \qquad a=bq_{0}+r_{1}\qquad (r_{1}<b) gcd(a,b)对应a=bq0+r1(r1<b)
g c d ( b , r 1 ) 对应 b = r 1 q 1 + r 2 ( r 2 < r 1 ) {gcd(b,r_1)}\qquad \qquad {\text{对应}} \qquad \qquad b=r_1q_{1}+r_{2}\qquad (r_{2}<r_1) gcd(b,r1)对应b=r1q1+r2(r2<r1)
g c d ( r 1 , r 2 ) 对应 r 1 = r 2 q 2 + r 3 ( r 3 < r 2 ) {gcd(r_1,r_2)}\qquad \qquad {\text{对应}} \qquad \qquad r_1=r_2q_{2}+r_{3}\qquad (r_{3}<r_2) gcd(r1,r2)对应r1=r2q2+r3(r3<r2)
g c d ( r 2 , r 3 ) 对应 r 2 = r 3 q 3 + r 4 ( r 4 < r 3 ) {gcd(r_2,r_3)}\qquad \qquad {\text{对应}} \qquad \qquad r_2=r_3q_{3}+r_{4}\qquad (r_{4}<r_3) gcd(r2,r3)对应r2=r3q3+r4(r4<r3)
     g c d ( r n − 2 , r n − 1 ) 对应 r n − 2 = r n − 1 q n − 1 + r n    ( r n < r n − 1 ) \;\; {gcd(r_{n-2},r_{n-1})} \qquad {\text{对应}} \qquad r_{n-2}=r_{n-1}q_{n-1}+r_{n} \;(r_{n}<r_{n-1}) gcd(rn−2,rn−1)对应rn−2=rn−1qn−1+rn(rn<rn−1)
   g c d ( r n − 1 , r n ) 对应 r n − 1 = r n q n + r n + 1 ( r n + 1 = 0 ) \; {gcd(r_{n-1},r_{n})}\qquad {\text{对应}} \qquad r_{n-1}=r_{n}q_{n}+r_{n+1}\qquad (r_{n+1}=0) gcd(rn−1,rn)对应rn−1=rnqn+rn+1(rn+1=0)
g c d ( r n , r n + 1 ) 对应 r n = r n + 1 q n + 1 + r n + 2 此 时 r n + 1 = 0 , r e t u r n      r n gcd(r_n,r_{n+1})\qquad {\text{对应}} \qquad r_n=r_{n+1}q_{n+1}+r_{n+2} 此时r_{n+1}=0,return \;\;r_n gcd(rn,rn+1)对应rn=rn+1qn+1+rn+2此时rn+1=0,returnrn
那么            g c d ( a , b ) = r n {\text{那么}} \qquad \qquad \;\;\;\;\; gcd(a,b)= r_n 那么