हमारे पास एक सरणी ए है, हमें जीसीडी ऑपरेशन का उपयोग किए बिना सभी तत्वों के एलसीएम को खोजना होगा। यदि सरणी {4, 6, 12, 24, 30} की तरह है, तो LCM 120 होगा।
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
सरणी के पहले दो नंबरों का एलसीएम प्राप्त करने के लिए इस फ़ंक्शन का उपयोग करें, फिर एलसीएम के परिणाम का उपयोग अगले तत्व के एलसीएम को खोजने के लिए किया जाएगा, इस प्रकार हम परिणाम प्राप्त कर सकते हैं
उदाहरण
#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