এখানে আমরা দেখব কীভাবে অ্যারে গুণফলের ফলাফলকে n দিয়ে ভাগ করে ভাগশেষ বের করা যায়। অ্যারে এবং n-এর মান ইউজার দেবে। ধরা যাক অ্যারেটি হলো {১২, ৩৫, ৬৯, ৭৪, ১৬৫, ৫৪}। গুণফল হবে (১২ * ৩৫ * ৬৯ * ৭৪ * ১৬৫ * ৫৪) = ১৯১০৭৬৭৩২০০। এখন যদি আমরা ৪৭ দিয়ে ভাগ করি তবে ভাগশেষ হবে ১৪।
দেখতে এই সমস্যা খুব সহজ। আমরা সহজে এলিমেন্টগুলো গুণ করে মডুলাস অপারেটর দিয়ে রেজাল্ট পেতে পারি। কিন্তু মূল সমস্যাটি হলো গুণফল ক্যালকুলেট করার সময় এটি ইন্টিজার বা লং-এর রেঞ্জ অতিক্রম করতে পারে। তাই ইনভ্যালিড রেজাল্ট আসতে পারে। এই সমস্যা ওপর কাবু পেতে আমরা নিচের প্রসেস ফলো করব।
অ্যালগরিদম
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