export function mod_exp(a, b, n) { let res = 1n; while (b > 0n) { if (b % 2n === 1n) { res = (res * a) % n; } b >>= 1n; a = (a * a) % n; } return res; }