C++ Program for GCD of more than two (or array) numbers?

C++Server Side ProgrammingProgramming

The common divisor of two numbers are the numbers that are divisors of both of them.

For example, the divisors of 12 are 1, 2, 3, 4, 6, 12. The divisors of 18 are 1, 2, 3, 6, 9, 18. Thus, the common divisors of 12 and 18 are 1, 2, 3, 6. The greatest among these is, perhaps unsurprisingly, called the of 12 and 18. The usual mathematical notation for the greatest common divisor of two integers a and b are denoted by (a, b). Hence, (12, 18) = 6.

The greatest common divisor is important for many reasons. For example, it can be used to calculate the of two numbers, i.e., the smallest positive integer that is a multiple of these numbers. The least common multiple of the numbers a and b can be calculated as a*b*(a, b)

For example, the least common multiple of 12 and 18 is 12*18*(12, 18)=12*18*6

Input: 4, 10, 16, 14
Output: 2

Explanation

GCD of two or more integers is the largest integer that can exactly divide both numbers (without a remainder).

Example

#include <iostream>
using namespace std;
int gcd(int a,int b) {
   int temp;
   while(b > 0) {
      temp = b;
      b = a % b;
      a = temp;
   }
   return a;
}
int main() {
   int a[] = {4, 10, 16, 14};
   int n = 4;
   int r = a[0];
   for(int i=1; i<n; i++) {
      r = gcd(r, a[i]);
   }
   cout << r << endl;
   return 0;
}

Output

4
raja
Published on 19-Aug-2019 14:58:26
Advertisements