gcd 定理的证明:
模板:
ll gcd(ll a,ll b)
{if(b == 0) return a;else return gcd(b,a%b);
}
扩gcd证明:
模板:
ll extgcd(ll a,ll b,ll &x,ll &y)
{ll d = a;if(b == 0){x = 1;y = 0;} else{d = extgcd(b,a%b,y,x);y -= (a/b)*x;}return d;
}
解题规律:
首先化为 ax+by = c 的形式,一般采用增加常量的方式,然后把a,b,x,y 代入extgcd 模板,返回的是d = gcd(a,b)
得到的x 是 ax+by = gcd(a,b)=d 的一个解,这时候两边同时乘以c/d就能得到解x’ = x * c/d