一、欧几里得算法
欧几里得算法也称碾转相除法,是目前已知求最大公约数得最快通用方法,具有代码复杂度低、易理解、用途广众多优点。
1.1 欧几里得算法的基本公式
gcd(a,b)= gcd(b,a mod b)
其中gcd表示得是最大公约数的意思,比如 gcd(4,8)=4
mod是取模的意思,算法同取余类似,7mod3=1,即 1=7-2*3
1.2 欧几里得算法的证明
假设gcd(a,b)=r(即a和b的最大公约数为r)
——>存在x、y使 a=x*r,b=y*r,其中x、y互质
假设c=a mod b , 存在d使 c=a-d*b
——>c=a mod b =a-d*b=x*r-d*y*r=(x-d*y)r
——>又因为b=y*r,由欧几里得算法的基本公式 gcd(a,b)= gcd(b,a mod b)
——>可知 y 与(x-d*y)互质
证明:
——>假设y与(x-d*y)不互质
——>存在n、m使y=n*k,(x-d*y)=m*k,且k>1(互质k为1)