求x在模为mod时的逆元:
exgcd(x,mod,x,y)
求出后,第三个参数就是逆元。
mod可以不为质数
template <class T>
T exgcd(T a, T b, T &x, T &y) {
if (!b) {
x = 1, y = 0;
return a;
}
T t, ret;
ret = exgcd(b, a%b, x, y);
t = x, x = y, y = t - a / b*y;
return ret;
}
求x在模为mod时的逆元:
exgcd(x,mod,x,y)
求出后,第三个参数就是逆元。
mod可以不为质数
template <class T>
T exgcd(T a, T b, T &x, T &y) {
if (!b) {
x = 1, y = 0;
return a;
}
T t, ret;
ret = exgcd(b, a%b, x, y);
t = x, x = y, y = t - a / b*y;
return ret;
}