UNPKG

typescript-algorithms-and-datastructures

Version:
34 lines 1.42 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "./greatestCommonDivisor", "./extendedEuclidesAlgorithm"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const greatestCommonDivisor_1 = require("./greatestCommonDivisor"); const extendedEuclidesAlgorithm_1 = require("./extendedEuclidesAlgorithm"); function diophantineEquationSolver(a, b, c) { if (a + b === 0) { return null; } const gcd = greatestCommonDivisor_1.greatestCommonDivisor(a, b); const ratio = c / gcd; if (!Number.isInteger(ratio)) { return null; } const extendedEuclid = extendedEuclidesAlgorithm_1.extendedEuclidesAlgorithm(a, b); const x0 = ratio * extendedEuclid.x; const y0 = ratio * extendedEuclid.y; const p = a / gcd; const q = b / gcd; return (index) => { return [x0 + (q * index), y0 - (p * index)]; }; } exports.diophantineEquationSolver = diophantineEquationSolver; }); //# sourceMappingURL=diophantineEquationSolver.js.map