ax=b(mod n) (1),
求解x
已知
ax+ny=gcd(a,n) (2),对等式两边取模
ax=gcd(a,n)(mod n) (3)
所以,原方程有解的条件是gcd(a,n)|b,即b=k*gcd(a,n);
所以,通过求解(2)可以得到x'
而x=x'*b/gcd(a,n)得到所求解
还有,所有解都可以表示为
x0+i*(n/gcd(a,n)) (i=1,2...)
所以,求最小解即为
x0=(x%(n/gcd(a,n))+n/gcd(a,n))%(n/gcd(a,n))