typescript-algorithms-and-datastructures
Version:
Useful algorithms and Data structures written in typescript.
34 lines • 1.42 kB
JavaScript
(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