对于给定的a和b,扩展的欧几里得算法不仅计算出最大公因子d,而且还有另外两个整数 x 和 y,满足方程:
ax+by=d = gcd(a,b) , 显然a 和 b 具有相反的正负号。
几个例子: a=42, b=30时,这个方程结果如下表
看上面一个表我们发现所有的结果都是6的倍数,原因是 42x+30y=6(7x+5y),所以结果都是6的倍数
那么我们得出一个结论:
对于给定的整数a和b,ax+by的最小正整数为 gcd(a,b)
上面内容只是铺垫,那如何扩展欧几里得算法才能计算出(x,y,d)呢??
a=q1b+ r1 .............r1 = ax1+ by1
b=q2r1+ r2 ...........r2= ax2 + by2
r1=q3r2+r3............r3= ax3+ by3
............
rn-2=qnrn-1+ rn ........rn= axn+byn
rn-1=qn+1rn+0