# Find remainder of array multiplication divided by n

Given multiple numbers and a number n, the task is to print the remainder after multiply all the number divide by n.

Examples:

```Input : arr[] = {100, 10, 5, 25, 35, 14},
n = 11
Output : 9
100 x 10 x 5 x 25 x 35 x 14 = 61250000 % 11 = 9

Input : arr[] = {100, 10},
n = 5
Output : 0
100 x 10 = 1000 % 5 = 0
```

## Recommended: Please solve it on PRACTICE first, before moving on to the solution.

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

Approach that avoids overflow : First take a remainder or individual number like arr[i] % n. Then multiply the remainder with current result. After multiplication, again take remainder to avoid overflow. This works because of distributive properties of modular arithmetic. ( a * b) % c = ( ( a % c ) * ( b % c ) ) % c

## C++

 `// C++ program to find  ` `// remainder when all ` `// array elements are ` `// multiplied. ` `#include ` `using` `namespace` `std; ` ` `  `// Find remainder of arr * arr *  ` `// .. * arr[n-1] ` `int` `findremainder(``int` `arr[], ``int` `len, ``int` `n) ` `{ ` `    ``int` `mul = 1; ` ` `  `    ``// find the individual remainder ` `    ``// and multiple with mul. ` `    ``for` `(``int` `i = 0; i < len; i++)  ` `        ``mul = (mul * (arr[i] % n)) % n; ` `     `  `    ``return` `mul % n; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `arr[] = { 100, 10, 5, 25, 35, 14 }; ` `    ``int` `len = ``sizeof``(arr) / ``sizeof``(arr); ` `    ``int` `n = 11; ` ` `  `    ``// print the remainder of after ` `    ``// multiple all the numbers ` `    ``cout << findremainder(arr, len, n); ` `} `

## Java

 `// Java program to find  ` `// remainder when all ` `// array elements are ` `// multiplied. ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `public` `class` `GfG{ ` `     `  `    ``// Find remainder of arr * arr * ` `    ``// .. * arr[n-1] ` `    ``public` `static` `int` `findremainder(``int` `arr[],  ` `                                   ``int` `len, ``int` `n) ` `    ``{ ` `        ``int` `mul = ``1``; ` ` `  `        ``// find the individual remainder ` `        ``// and multiple with mul. ` `        ``for` `(``int` `i = ``0``; i < len; i++)  ` `            ``mul = (mul * (arr[i] % n)) % n; ` `     `  `        ``return` `mul % n; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `main(String argc[]) ` `    ``{ ` `        ``int``[] arr = ``new` `int` `[]{ ``100``, ``10``, ``5``, ` `                                ``25``, ``35``, ``14` `}; ` `        ``int` `len = ``6``; ` `        ``int` `n = ``11``; ` ` `  `        ``// print the remainder of after ` `        ``// multiple all the numbers ` `        ``System.out.println(findremainder(arr, len, n)); ` `    ``} ` `} ` ` `  `/* This code is contributed by Sagar Shukla */`

## Python3

 `# Python3 program to ` `# find remainder when ` `# all array elements ` `# are multiplied. ` ` `  `# Find remainder of arr * arr ` `# * .. * arr[n-1] ` `def` `findremainder(arr, lens, n): ` `    ``mul ``=` `1` ` `  `    ``# find the individual ` `    ``# remainder and  ` `    ``# multiple with mul. ` `    ``for` `i ``in` `range``(lens):  ` `        ``mul ``=` `(mul ``*` `(arr[i] ``%` `n)) ``%` `n ` `     `  `    ``return` `mul ``%` `n ` ` `  `# Driven code ` `arr ``=` `[ ``100``, ``10``, ``5``, ``25``, ``35``, ``14` `] ` `lens ``=` `len``(arr) ` `n ``=` `11` ` `  `# print the remainder ` `# of after multiple ` `# all the numbers ` `print``( findremainder(arr, lens, n)) ` ` `  `# This code is contributed by "rishabh_jain". `

## C#

 `// C# program to find  ` `// remainder when all ` `// array elements are ` `// multiplied. ` `using` `System; ` ` `  `public` `class` `GfG{ ` `     `  `    ``// Find remainder of arr * arr * ` `    ``// .. * arr[n-1] ` `    ``public` `static` `int` `findremainder(``int` `[]arr,  ` `                                ``int` `len, ``int` `n) ` `    ``{ ` `        ``int` `mul = 1; ` ` `  `        ``// find the individual remainder ` `        ``// and multiple with mul. ` `        ``for` `(``int` `i = 0; i < len; i++)  ` `            ``mul = (mul * (arr[i] % n)) % n; ` `     `  `        ``return` `mul % n; ` `    ``} ` `     `  `    ``// Driver function ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int``[] arr = ``new` `int` `[]{ 100, 10, 5, ` `                                ``25, 35, 14 }; ` `        ``int` `len = 6; ` `        ``int` `n = 11; ` ` `  `        ``// print the remainder of after ` `        ``// multiple all the numbers ` `        ``Console.WriteLine(findremainder(arr, len, n)); ` `    ``} ` `} ` ` `  `/* This code is contributed by vt_m */`

## PHP

 ` `

Output:

```9
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : jit_t, Akanksha_Rai

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.