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

**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 <bits/stdc++.h> ` `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; ` `} ` |

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

**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.