JavaScript: Calculate the greatest common divisor between two or more numbers/arrays
JavaScript fundamental (ES6 Syntax): Exercise-223 with Solution
Greatest Common Divisor
Write a JavaScript program to calculate the greatest common divisor between two or more numbers/arrays.
- The inner _gcd function uses recursion.
- Base case is when y equals 0. In this case, return x.
- Otherwise, return the GCD of y and the remainder of the division x/y.
Sample Solution:
JavaScript Code:
// Define a function 'gcd' to calculate the greatest common divisor (GCD) of multiple numbers
const gcd = (...arr) => {
// Define a helper function '_gcd' to recursively calculate GCD using Euclidean algorithm
const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
// Reduce the input array to find the GCD of all numbers using the '_gcd' function
return [...arr].reduce((a, b) => _gcd(a, b));
};
// Log the GCD of two numbers (8 and 36) and multiple numbers (12, 8, and 32)
console.log(gcd(8, 36)); // Output: 4 (GCD of 8 and 36)
console.log(gcd(...[12, 8, 32])); // Output: 4 (GCD of 12, 8, and 32)
Output:
4 4
Visual Presentation:
Flowchart:

Live Demo:
See the Pen javascript-basic-exercise-223-1 by w3resource (@w3resource) on CodePen.
For more Practice: Solve these Related Problems:
- Write a JavaScript program that computes the greatest common divisor (GCD) of two numbers using the Euclidean algorithm.
- Write a JavaScript function that iteratively calculates the GCD for an array of numbers.
- Write a JavaScript program that uses recursion to determine the GCD of two integers.
- Write a JavaScript function that returns the GCD of multiple numbers by reducing the array with the Euclidean algorithm.
Go to:
PREV : Range Array with Ratio Step.
NEXT : Remove HTML/XML Tags.
Improve this sample solution and post your code through Disqus
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.