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

**Naive approach:** First multiple all the number then take % by n then find the remainder, But in this approach, if the number is maximum of 2^64 then it gives the 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.

`// Java program to find` `// remainder when all` `// array elements are` `// multiplied.` `import` `java.util.*;` `import` `java.lang.*;` ` ` `public` `class` `GfG {` ` ` ` ` `// Find remainder of arr[0] * arr[1] *` ` ` `// .. * 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 */` |

**Output:**

9

Please refer complete article on Find remainder of array multiplication divided by n for more details!

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.