Related Articles

# Find remainder of array multiplication divided by n

• Difficulty Level : Easy
• Last Updated : 05 May, 2021

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

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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

 ``

## Javascript

 ``

Output:

`9`

My Personal Notes arrow_drop_up