# Cumulative product of digits of all numbers in the given range

Given two integers L and R, the task is to find the cumulative product of digits (i.e. product of the product of digits) of all Natural numbers in the range L to R.

Examples:

Input: L = 2, R = 5
Output: 14
Explanation:
2 * 3 * 4 * 5 = 120

Input: L = 11, R = 15
Output: 120
Explanation:
(1*1) * (1*2) * (1*3) * (1*4) * (1*5) = 1 * 2 * 3 * 4 * 5 = 120

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

To solve the problem mentioned above we have to observe that if:

• If the difference between L and R is greater than 9 then the product is 0 because there appears a digit 0 in every number after intervals of 9.
• Otherwise, We can find the product in a loop from L to R, the loop will run a maximum of 9 times.

Below is the implementation of the above approach:

## C++

 `// C++ program to print the product ` `// of all numbers in range L and R ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to get product of digits ` `int` `getProduct(``int` `n) ` `{ ` `    ``int` `product = 1; ` ` `  `    ``while` `(n != 0) { ` `        ``product = product * (n % 10); ` `        ``n = n / 10; ` `    ``} ` ` `  `    ``return` `product; ` `} ` ` `  `// Function to find the product of digits ` `// of all natural numbers in range L to R ` `int` `productinRange(``int` `l, ``int` `r) ` `{ ` `    ``if` `(r - l > 9) ` `        ``return` `0; ` ` `  `    ``else` `{ ` `        ``int` `p = 1; ` ` `  `        ``// Iterate between L to R ` `        ``for` `(``int` `i = l; i <= r; i++) ` ` `  `            ``p *= getProduct(i); ` ` `  `        ``return` `p; ` `    ``} ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `l = 11, r = 15; ` `    ``cout << productinRange(l, r) ` `         ``<< endl; ` ` `  `    ``l = 1, r = 15; ` `    ``cout << productinRange(l, r); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to print the product ` `// of all numbers in range L and R ` `class` `GFG{ ` ` `  `// Function to get product of digits ` `static` `int` `getProduct(``int` `n) ` `{ ` `    ``int` `product = ``1``; ` ` `  `    ``while` `(n != ``0``) ` `    ``{ ` `        ``product = product * (n % ``10``); ` `        ``n = n / ``10``; ` `    ``} ` `    ``return` `product; ` `} ` ` `  `// Function to find the product of digits ` `// of all natural numbers in range L to R ` `static` `int` `productinRange(``int` `l, ``int` `r) ` `{ ` `    ``if` `(r - l > ``9``) ` `        ``return` `0``; ` ` `  `    ``else` `    ``{ ` `        ``int` `p = ``1``; ` ` `  `        ``// Iterate between L to R ` `        ``for` `(``int` `i = l; i <= r; i++) ` ` `  `            ``p *= getProduct(i); ` ` `  `        ``return` `p; ` `    ``} ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `l = ``11``, r = ``15``; ` `    ``System.out.print(productinRange(l, r) + ``"\n"``); ` ` `  `    ``l = ``1``; r = ``15``; ` `    ``System.out.print(productinRange(l, r)); ` `} ` `} ` ` `  `// This code is contributed by Rohit_ranjan `

## Python3

 `# Python3 program to print the product  ` `# of all numbers in range L and R  ` ` `  `# Function to get product of digits  ` `def` `getProduct(n):  ` ` `  `    ``product ``=` `1` ` `  `    ``while` `(n !``=` `0``): ` `        ``product ``=` `product ``*` `(n ``%` `10``) ` `        ``n ``=` `int``(n ``/` `10``)  ` ` `  `    ``return` `product ` ` `  `# Function to find the product of digits  ` `# of all natural numbers in range L to R  ` `def` `productinRange(l, r): ` ` `  `    ``if` `(r ``-` `l > ``9``): ` `        ``return` `0` ` `  `    ``else``: ` `        ``p ``=` `1` ` `  `        ``# Iterate between L to R  ` `        ``for` `i ``in` `range``(l, r ``+` `1``): ` ` `  `            ``p ``=` `p ``*` `getProduct(i)  ` ` `  `        ``return` `p ` ` `  `# Driver Code  ` `l ``=` `11` `r ``=` `15` `print` `(productinRange(l, r), end``=``'\n'``)  ` ` `  `l ``=` `1` `r ``=` `15` `print` `(productinRange(l, r)) ` ` `  `# This code is contributed by PratikBasu `

## C#

 `// C# program to print the product ` `// of all numbers in range L and R ` `using` `System; ` ` `  `class` `GFG{ ` ` `  `// Function to get product of digits ` `static` `int` `getProduct(``int` `n) ` `{ ` `    ``int` `product = 1; ` ` `  `    ``while` `(n != 0) ` `    ``{ ` `        ``product = product * (n % 10); ` `        ``n = n / 10; ` `    ``} ` `    ``return` `product; ` `} ` ` `  `// Function to find the product of digits ` `// of all natural numbers in range L to R ` `static` `int` `productinRange(``int` `l, ``int` `r) ` `{ ` `    ``if` `(r - l > 9) ` `        ``return` `0; ` `         `  `    ``else` `    ``{ ` `        ``int` `p = 1; ` ` `  `        ``// Iterate between L to R ` `        ``for``(``int` `i = l; i <= r; i++) ` `           ``p *= getProduct(i); ` ` `  `        ``return` `p; ` `    ``} ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `l = 11, r = 15; ` `    ``Console.Write(productinRange(l, r) + ``"\n"``); ` ` `  `    ``l = 1; r = 15; ` `    ``Console.Write(productinRange(l, r)); ` `} ` `} ` ` `  `// This code is contributed by amal kumar choubey `

Output:

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

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.