UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

24 lines (19 loc) 417 B
'use strict'; /* Modular Multiplicative Inverse * function : modInv() */ var validate = require('../validation/integer'); var gcd = require('../gcd'); function modInv(a, m) { var arr = [a, m]; if (gcd(arr) == 1) { for (var i = 1; i < m; i++) { if (a * i % m == 1) return i; } } else return 0; } exports.modInv = function (a, m) { validate(a, 'modInv'); validate(m, 'modInv'); return modInv(a, m); };