我在 Maxima 中定义了一个扩展的欧几里得算法
ext_euclid(a,b):=block(
[x,y,d,x_old,y_old,d_old],
if b = 0 then return([1,0,a])
else ([x_old,y_old,d_old]:ext_euclid(b,mod(a,b)),
[x,y,d]:[y_old,x_old-quotient(a,b)*y_old,d_old],
return([x,y,d])));
为了解决a + b = c形式的线性丢番图方程,其中gcd(a,b)= 1,但是如果ab = c我得到-1由除数算法返回,但gcd(a,-b)为前。我的算法是错误的,还是可以用于 ab=c?
伊恩