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

CC++Server Side ProgrammingProgramming

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
raja
Published on 19-Aug-2019 07:49:25
Advertisements