GCD and LCM C++ Program

 

#include <bits/stdc++.h>
using namespace std;
int LCM(int arr[], int n){
int max = 0;
for(int i=0;i<n;i++){
if(arr[i] > max){
max = arr[i];
}
}
int i = 1;
// counts the number of proper divisions
int count = 0;
while(count != n){
// checks all elements %
for(int k=0;k<n;k++){
if((max*i)% arr[k] == 0){
count++;
}
else{
count = 0;
i++;
break;
}
}
}
return max*i;
}

int HCF(int arr[], int n){
int min = arr[0];
for(int i=1;i<n;i++){
if(arr[i] < min){
min = arr[i];
}
}
int count = 0;
while(count != n){
for(int k=0;k<n;k++){
if(arr[k]% min == 0){
count++;
}
else{
count = 0;
min--;
break;
}
}
}
return min;
}


int main(){
int arr[] = {2, 7, 3, 9, 4};
cout<<LCM(arr, 5)<<endl;
cout<<HCF(arr, 5)<<endl;
return 0;
}

Comments

Popular Posts