欧几里德算法&&扩展欧几里德算法
欧几里德算法也叫辗转相除法,可以证明,
gcd(a,b)=gcd(b,a%b)
而扩展欧几里德算法,就是在求gcd的回推的基础上求出方程
ax+by=gcd(a,b)
的一个特征解。于是,我们就可以用其来解/判断是否有解一个二元不定方程了。
int e_gcd(int a,int b,int& x,int& y)
{
if(!b) return x=1,y=0,a;
int ans=e_gcd(b,a%b,y,x);
return y-=a/b*x,ans;
}