const exGcd = (n, m) => m === 0 ? [1, 0, n] : _exGcd(div(n, m), exGcd(m, mod(n, m))); const _exGcd = (q, [y, x, d] = []) => [x, y - x * q, d]; const div = (n, m) => (n - mod(n, m)) / m; const mod = (n, m) => (Math.abs(m) + (n % m)) % m; const gcd = (n, m) => m === 0 ? n : gcd(m, mod(n, m)); const randInt = (min, max) => Math.floor(Math.random() * max - min + 1) + min; const n = randInt(-100, 100);