यहां हम देखेंगे कि परिणाम को n से विभाजित करने के बाद शेष सरणी गुणन की गणना कैसे करें। सरणी और n का मान उपयोगकर्ता द्वारा प्रदान किया जाता है। मान लीजिए कि सरणी {12, 35, 69, 74, 165, 54} की तरह है तो गुणा (12 * 35 * 69 * 74 * 165 * 54) =19107673200 होगा। अब अगर हम इसे गोता लगाने के बाद शेष प्राप्त करना चाहते हैं 47 तक यह 14 होगा।
जैसा कि हम देख सकते हैं कि यह समस्या बहुत सरल है। हम मॉड्यूलस ऑपरेटर का उपयोग करके तत्वों को आसानी से गुणा कर सकते हैं, यह परिणाम प्राप्त कर सकता है। लेकिन मुख्य समस्या यह है कि जब हम गुणन की गणना करते हैं, तो यह पूर्णांक की सीमा से अधिक हो सकता है, या लंबा भी हो सकता है। तो यह कुछ अमान्य परिणाम लौटा सकता है। इस समस्या को दूर करने के लिए, हम इस प्रक्रिया का पालन करेंगे।
एल्गोरिदम
गुणा करेंRemainder(arr, size, n)
begin mul := 1 for i in range 0 to size – 1, do mul := (mul * (arr[i] mod n)) mod n done return mul mod n end
उदाहरण
#include<iostream> using namespace std; int multiplyRemainder(int arr[], int size, int n){ int mul = 1; for(int i = 0; i<size; i++){ mul = (mul * (arr[i] % n)) % n; } return mul % n; } int main(){ int arr[6] = {12, 35, 69, 74, 165, 54}; int size = 6; int n = 47; cout << "Remainder: " << multiplyRemainder(arr, size, n); }
आउटपुट
Remainder: 14