Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

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 <iostream>
using namespace std;
 
// Find remainder of arr[0] * arr[1] *
// .. * 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[0]);
    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[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 */

Python3




# Python3 program to
# find remainder when
# all array elements
# are multiplied.
 
# Find remainder of arr[0] * arr[1]
# * .. * 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[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()
    {
        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




<?php
// PHP program to find
// remainder when all
// array elements are
// multiplied.
 
// Find remainder of arr[0] * arr[1] *
// .. * arr[n-1]
function findremainder($arr, $len, $n)
{
    $mul = 1;
 
    // find the individual remainder
    // and multiple with mul.
    for ($i = 0; $i < $len; $i++)
        $mul = ($mul * ($arr[$i] % $n)) % $n;
     
    return $mul % $n;
}
 
// Driver code
$arr = array(100, 10, 5, 25, 35, 14);
$len = sizeof($arr);
$n = 11;
 
// print the remainder of after
// multiple all the numbers
echo(findremainder($arr, $len, $n));
 
// This code is contributed by Ajit.
?>

Javascript




<script>
    // Javascript program to find
    // remainder when all
    // array elements are
    // multiplied.
     
    // Find remainder of arr[0] * arr[1] *
    // .. * arr[n-1]
    function findremainder(arr, len, n)
    {
        let mul = 1;
   
        // find the individual remainder
        // and multiple with mul.
        for (let i = 0; i < len; i++)
            mul = (mul * (arr[i] % n)) % n;
       
        return mul % n;
    }
     
    let arr = [ 100, 10, 5, 25, 35, 14 ];
    let len = 6;
    let n = 11;
 
    // print the remainder of after
    // multiple all the numbers
    document.write(findremainder(arr, len, n));
 
// This code is contributed by rameshtravel07.
</script>

Output: 
 

9

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!