1. 程式人生 > >exgcd求逆元模板

exgcd求逆元模板

求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;
}