1 /** 2 * Compute the greatest common divisor using Euclid's algorithm. 3 * 4 * @param {number} num1 - First number. 5 * @param {number} num2 - Second number. 6 * @returns {number} 7 */ 8 export function greatestCommonDivisor(num1: number, num2: number) { 9 let number1: number = num1; 10 let number2: number = num2; 11 12 while (number1 !== number2) { 13 if (number1 > number2) { 14 number1 = number1 - number2; 15 } else { 16 number2 = number2 - number1; 17 } 18 } 19 20 return number2; 21 } 22 23 /** 24 * Calculate least common multiple using gcd. 25 * 26 * @param {number} num1 - First number. 27 * @param {number} num2 - Second number. 28 * @returns {number} 29 */ 30 export function leastCommonMultiple(num1: number, num2: number) { 31 const number1: number = num1; 32 const number2: number = num2; 33 34 const gcd: number = greatestCommonDivisor(number1, number2); 35 36 return (number1 * number2) / gcd; 37 }