dist-javascript-algorithms-and-data-structures
Version:
Algorithms and data-structures implemented on JavaScript
21 lines (18 loc) • 619 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = euclideanAlgorithm;
/**
* Recursive version of Euclidean Algorithm of finding greatest common divisor (GCD).
* @param {number} originalA
* @param {number} originalB
* @return {number}
*/
function euclideanAlgorithm(originalA, originalB) {
// Make input numbers positive.
const a = Math.abs(originalA);
const b = Math.abs(originalB); // To make algorithm work faster instead of subtracting one number from the other
// we may use modulo operation.
return b === 0 ? a : euclideanAlgorithm(b, a % b);
}