扩展欧几里得算法可以解
ax+by=gcd(a,b)
。
若
ax+by+c=0
有解, 那么
−c
必须是
gcd(a,b)
的倍数。
将
x1,x2,y1,y2
代入原方程,可得
ax1+by1=ax2+by2
,整理得
a(x1−x2)=b(y2−y1)
,两边除以
gcd(a,b)
可得
a′(x1−x2)=b′(y2−y1)
,此时
a′
与
b′
互质,因此
x1−x2
一定是
a′
的整数倍,设它为
kb′
, 这样
y2−y1=ka′
因此得到结论:
若得到
ax+by+c=0
的一组解
(x0,y0)
,那么它的任意整数解可以写成
(x0+kb′,y0−ka′)
。
线性同余方程 ax=b mod p ,可以写成 ax=py+b , ax−py=b ,因此其有解的充要条件是 b=gcd(a,p) 。