# 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
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

## Recommended Posts:

Article Tags :

Be the First to upvote.

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