C/C++ Program to Find the reminder of array multiplication divided by n?


Array multiplication we will find the product of all elements of the given array. and then according to the problem, we will divide the product with the number n. let's take an example −

Input: arr[] = { 12, 35, 69, 74, 165, 54};
      N = 47
Output: 14

Explanation

The array is like {12, 35, 69, 74, 165, 54} so the multiplication will be (12 * 35 * 69 * 74 * 165 * 54) = 19107673200. Now if we want to get the remainder after dividing this by 47 it will be 14.

First multiple all the number then take % by n then find the reminder, But in this approach, if the number is maximum of 2^64 then it gives the wrong answer.

Example

#include <stdio.h>
int main() {
   int arr[] = { 12, 35, 69, 74, 165, 54};
   int len = 6;
   int n = 47 ;
   int mul = 1;
   for (int i = 0; i < len; i++)
      mul = (mul * (arr[i] % n)) % n;
   printf("the remainder is %d", (mul%n));
   return 0;
}

Output

the remainder is 14

Updated on: 19-Aug-2019

97 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements