Open In App

Cumulative product of digits of all numbers in the given range

Improve
Improve
Like Article
Like
Save
Share
Report

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


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

 

Time Complexity: O((r-l)*log(r))

Auxiliary Space: O(1)



Last Updated : 25 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads