Related Articles

Find last k digits in product of an array numbers

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

Given a array size of n, find the last k digits (1 <= k < 10) of product of array numbers

Examples:

```Input  : a[] = {22, 31, 44, 27, 37, 43}
Output : 56

Input  : a[] = {24, 7, 144, 77, 29, 19}
Output : 84```

A simple solution is to multiply all numbers, then find last k digits of product. This solution may lead overflow as the array product may be high.

A better solution is to multiply array elements under modulo of 10k

C++

 `// CPP program to find the last k digits in``// product of array``#include ``using` `namespace` `std;` `// Returns last k digits in product of a[]``int` `lastKDigits(``int` `a[], ``int` `n, ``int` `k)``{``    ``int` `num = (``int``)``pow``(10, k);` `    ``// Multiplying array elements under``    ``// modulo 10^k.``    ``int` `mul = a[0] % num;``    ``for` `(``int` `i = 1; i < n; i++) {``        ``a[i] = a[i] % num;``        ``mul = (a[i] * mul) % num;``    ``}``    ``return` `mul;``}` `// Driven program``int` `main()``{``    ``int` `a[] = { 22, 31, 44, 27, 37, 43 };``    ``int` `k = 2;``    ``int` `n = ``sizeof``(a) / ``sizeof``(a[0]);``    ``cout << lastKDigits(a, n, k);``    ``return` `0;``}`

Java

 `// Java program to find``// the last k digits in``// product of array``import` `java.io.*;``import` `java.math.*;` `class` `GFG {``    ` `    ``// Returns last k digits in product of a[]``    ``static` `int` `lastKDigits(``int` `a[], ``int` `n, ``int` `k)``    ``{``        ``int` `num = (``int``)(Math.pow(``10``, k));``    ` `        ``// Multiplying array elements``        ``// under modulo 10^k.``        ``int` `mul = a[``0``] % num;``        ` `        ``for` `(``int` `i = ``1``; i < n; i++) {``            ``a[i] = a[i] % num;``            ``mul = (a[i] * mul) % num;``        ``}``        ``return` `mul;``    ``}``    ` `// Driven program``public` `static` `void` `main(String args[])``{``    ``int` `a[] = { ``22``, ``31``, ``44``, ``27``, ``37``, ``43` `};``    ``int` `k = ``2``;``    ``int` `n = a.length;``    ` `    ``System.out.println(lastKDigits(a, n, k));``}` `}`  `/*This code is contributed by Nikita Tiwari.*/`

Python3

 `# Python 3 program to find the last``# k digits inproduct of array``import` `math` `# Returns last k digits``# in product of a[]``def` `lastKDigits(a, n, k) :``    ` `    ``num ``=` `(``int``)(math.``pow``(``10``, k))``    ` `    ``# Multiplying array elements``    ``# under modulo 10^k.``    ``mul ``=` `a[``0``] ``%` `num``    ` `    ``for` `i ``in` `range``(``1``,n) :``        ``a[i] ``=` `a[i] ``%` `num``        ``mul ``=` `(a[i] ``*` `mul) ``%` `num``    ` `    ``return` `mul``    `  `# Driven program``a ``=` `[ ``22``, ``31``, ``44``, ``27``, ``37``, ``43` `]``k ``=` `2``n ``=` `len``(a)``print``(lastKDigits(a, n, k))`  `# This code is contributed by Nikita Tiwari.`

C#

 `// C# program to find``// the last k digits in``// product of array``using` `System;` `class` `GFG {``    ` `    ``// Returns last k digits in product of a[]``    ``static` `int` `lastKDigits(``int` `[]a, ``int` `n, ``int` `k)``    ``{``        ``int` `num = (``int``)(Math.Pow(10, k));``    ` `        ``// Multiplying array elements``        ``// under modulo 10^k.``        ``int` `mul = a[0] % num;``        ` `        ``for` `(``int` `i = 1; i < n; i++) {``            ``a[i] = a[i] % num;``            ``mul = (a[i] * mul) % num;``        ``}``        ``return` `mul;``    ``}``    ` `    ``// Driven program``    ``public` `static` `void` `Main()``    ``{``        ``int` `[]a = { 22, 31, 44, 27, 37, 43 };``        ``int` `k = 2;``        ``int` `n = a.Length;``        ` `        ``Console.WriteLine(lastKDigits(a, n, k));``    ``}` `}`  `// This code is contributed by vt_m.`

PHP

 ``

Javascript

 ``

Output:

` 56`

Time Complexity : O(n)

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.

My Personal Notes arrow_drop_up