কম্পিউটার

C/C++ প্রোগ্রাম n দ্বারা ভাগ করা অ্যারে গুণের অনুস্মারক খুঁজে পেতে?


এখানে আমরা দেখব কিভাবে ফলাফলকে 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

উদাহরণ

#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

  1. সি/সি++ প্রোগ্রাম মার্জ সর্ট ব্যবহার করে একটি অ্যারের মধ্যে বিপরীতমুখী গণনা করতে?

  2. অ্যারের উপাদানগুলির গুণনের জন্য C++ প্রোগ্রাম

  3. জাভা প্রোগ্রাম n দ্বারা ভাগ করা অ্যারে গুণের অনুস্মারক খুঁজে পেতে

  4. n দ্বারা বিভক্ত অ্যারে গুণের অনুস্মারক সন্ধানের জন্য পাইথন প্রোগ্রাম