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 = 5Output:14Explanation:

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

(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;` `}` |

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

## Javascript

`<script>` `// Javascript program to print the product` `// of all numbers in range L and R` `// Function to get product of digits` `function` `getProduct(n)` `{` ` ` `var` `product = 1;` ` ` `while` `(n != 0) {` ` ` `product = product * (n % 10);` ` ` `n = parseInt(n / 10);` ` ` `}` ` ` `return` `product;` `}` `// Function to find the product of digits` `// of all natural numbers in range L to R` `function` `productinRange(l, r)` `{` ` ` `if` `(r - l > 9)` ` ` `return` `0;` ` ` `else` `{` ` ` `var` `p = 1;` ` ` `// Iterate between L to R` ` ` `for` `(` `var` `i = l; i <= r; i++)` ` ` `p *= getProduct(i);` ` ` `return` `p;` ` ` `}` `}` `// Driver Code` `var` `l = 11, r = 15;` `document.write( productinRange(l, r)+ ` `"<br>"` `);` `l = 1, r = 15;` `document.write( productinRange(l, r));` `// This code is contributed by rutvik_56.` `</script>` |

**Output:**

120 0

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**