हमारे पास एक सरणी A है, हमें GCD ऑपरेशन का उपयोग किए बिना सभी तत्वों का LCM ढूंढना है। यदि सरणी {4, 6, 12, 24, 30} जैसी है, तो LCM 120 होगा।
दो संख्याओं के लिए LCM आसानी से गणना की जा सकती है। हमें LCM प्राप्त करने के लिए इस एल्गोरिदम का पालन करना होगा।
getLCM(a, b) −
begin 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 done end
इस फंक्शन का उपयोग सरणी के पहले दो संख्याओं का LCM प्राप्त करने के लिए करें, फिर LCM के परिणाम का उपयोग अगले तत्व का LCM खोजने के लिए करें, इस प्रकार हम परिणाम प्राप्त कर सकते हैं।
उदाहरण
#include <iostream> using namespace std; int getLCM(int a, int b){ int m; m = (a > b) ? a : b; while(true){ if(m % a == 0 && m % b == 0) return m; 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