C++ 二元一次不定方程巧妙求解——运用扩展欧几里得算法

前言

在关于数论的学习中,求解二元一次不定方程是很重要的,在学习求解二元一次不定方程之前,要先了解欧几里得算法和扩展欧几里得算法。

关于数论的学习


欧几里得算法

欧几里得算法就是辗转相除法,欧几里得算法中 ( x , y ) 的最大公约数与 ( y , x mod y ) 的最大公约数相同。

证明:设  y = k*x+b ,则 b = y % x 
           设 d 是 ( x ,y ) 的公约数
           则 d 能整除 x 和 y ,因为 b = y - k*x = a1*d - k*a2*d = d*( a1-k*a2 )
           所以 d 也能整除 b 
           所以 ( x , y ) 的最大公约数与 ( y , x%y ) 的最大公因数相同


扩展欧几里得算法

对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然

存在两个整数 x,y ,使得 gcd(a&#x

posted @ 2019-03-01 14:04  Nomad_Joe_violet  阅读(55)  评论(0编辑  收藏  举报  来源