Finding LCM of more than two (or array) numbers without using GCD in C++

We have an array A, we have to find the LCM of all elements without using the GCD operation. If the array is like {4, 6, 12, 24, 30}, then the LCM will be 120.

The LCM can be calculated easily for two numbers. We have to follow this algorithm to get the LCM.

getLCM(a, b)

   if a > b, then m := a, otherwise m := b
      while true do
         if m is divisible by both a and b, then return m
            m := m + 1

Use this function to get LCM of first two numbers of array, then result of LCM will be used to find LCM of next element, thus we can get the result


 Live Demo

#include <iostream>
using namespace std;
int getLCM(int a, int b){
   int m;
   m = (a > b) ? a : b;
      if(m % a == 0 && m % b == 0)
      return m;
int getLCMArray(int arr[], int n){
   int lcm = getLCM(arr[0], arr[1]);
   for(int i = 2; i < n; i++){
      lcm = getLCM(lcm, arr[i]);
   return lcm;
int main() {
   int arr[] = {4, 6, 12, 24, 30};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "LCM of array elements: " << getLCMArray(arr, n);


LCM of array elements: 120

Updated on: 21-Oct-2019


Kickstart Your Career

Get certified by completing the course

Get Started