summaryrefslogtreecommitdiff
path: root/math/modMulIterativ.cpp
blob: 611f09a56f45a42f28acf937ee569110d43c1d31 (plain)
1
2
3
4
5
6
7
8
9
ll mulMod(ll a, ll b, ll n) {
	ll res = 0;
	while (b > 0) {
		if (b & 1) res = (a + res) % n;
		a = (a * 2) % n;
		b /= 2;
	}
	return res;
}