# Find remainder of array multiplication divided by n

• Difficulty Level : Easy
• Last Updated : 28 Jul, 2022

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

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

Implementation:

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

 ``

## Javascript

 ``

Output

`9`

Time Complexity: O(len), where len is the size of the given array
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up