mathball
Version:
A JavaScript library for Competitive Programming
24 lines (19 loc) • 417 B
JavaScript
;
/* 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;
}
module.exports = function (a, m) {
validate(a, 'modInv');
validate(m, 'modInv');
return modInv(a, m);
};