逆元https://blog.csdn.net/LOOKQAQ/article/details/81282342
扩展欧几里得https://blog.csdn.net/destiny1507/article/details/81750874
//ax+by=gcd(a,b),求最小x和y。d是a、b的最大公因数
void gcd(int a, int b, int &d, int &x, int &y) {
if (!b) {
d = a;
x = 1;
y = 0;
return;//也可以不return,因为返回上一层之后,b不再为0
}
else {
gcd(b, a%b, d, y, x);
y -= x * (a / b);
}
}