यहां हम देखेंगे कि सरणी गुणन के परिणाम को n से विभाजित करने के बाद शेष की गणना कैसे करें। सरणी और n का मान उपयोगकर्ता द्वारा प्रदान किया जाता है। मान लीजिए सरणी {12, 35, 69, 74, 165, 54} जैसी है तो गुणन (12 * 35 * 69 * 74 * 165 * 54) = 19107673200 होगा। अब यदि हम इसे 47 से विभाजित करके शेष प्राप्त करना चाहते हैं तो यह 14 होगा।
जैसा कि हम देख सकते हैं यह समस्या बहुत सरल है। हम आसानी से तत्वों को गुणा कर सकते हैं फिर मॉड्यूलस ऑपरेटर का उपयोग करके परिणाम प्राप्त कर सकते हैं। लेकिन मुख्य समस्या यह है कि जब हम गुणन की गणना करते हैं, तो यह पूर्णांक या लंबी की सीमा को पार कर सकता है। तो यह कुछ अमान्य परिणाम लौटा सकता है। इस समस्या को दूर करने के लिए, हम इस प्रक्रिया का पालन करेंगे।
एल्गोरिदम
multiplyRemainder(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
उदाहरण
#includeusing namespace std; int multiplyRemainder(int arr[], int size, int n){ int mul = 1; for(int i = 0; i आउटपुट
Remainder: 14