summaryrefslogtreecommitdiff
path: root/math/discreteNthRoot.cpp
blob: 7201b2b5515cf2b2561bb551b14643c55be69751 (plain)
1
2
3
4
5
ll root(ll a, ll b, ll m) {
	ll g = findPrimitive(m);
	ll c = dlog(powMod(g, a, m), b, m); //dLog @\sourceref{math/discreteLogarithm.cpp}@
	return c < 0 ? -1 : powMod(g, c, m);
}