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
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++
#include <bits/stdc++.h>
using namespace std;
int getProduct( int n)
{
int product = 1;
while (n != 0) {
product = product * (n % 10);
n = n / 10;
}
return product;
}
int productinRange( int l, int r)
{
if (r - l > 9)
return 0;
else {
int p = 1;
for ( int i = l; i <= r; i++)
p *= getProduct(i);
return p;
}
}
int main()
{
int l = 11, r = 15;
cout << productinRange(l, r)
<< endl;
l = 1, r = 15;
cout << productinRange(l, r);
return 0;
}
|
Java
class GFG{
static int getProduct( int n)
{
int product = 1 ;
while (n != 0 )
{
product = product * (n % 10 );
n = n / 10 ;
}
return product;
}
static int productinRange( int l, int r)
{
if (r - l > 9 )
return 0 ;
else
{
int p = 1 ;
for ( int i = l; i <= r; i++)
p *= getProduct(i);
return p;
}
}
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));
}
}
|
Python3
def getProduct(n):
product = 1
while (n ! = 0 ):
product = product * (n % 10 )
n = int (n / 10 )
return product
def productinRange(l, r):
if (r - l > 9 ):
return 0
else :
p = 1
for i in range (l, r + 1 ):
p = p * getProduct(i)
return p
l = 11
r = 15
print (productinRange(l, r), end = '\n' )
l = 1
r = 15
print (productinRange(l, r))
|
C#
using System;
class GFG{
static int getProduct( int n)
{
int product = 1;
while (n != 0)
{
product = product * (n % 10);
n = n / 10;
}
return product;
}
static int productinRange( int l, int r)
{
if (r - l > 9)
return 0;
else
{
int p = 1;
for ( int i = l; i <= r; i++)
p *= getProduct(i);
return p;
}
}
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));
}
}
|
Javascript
<script>
function getProduct(n)
{
var product = 1;
while (n != 0) {
product = product * (n % 10);
n = parseInt(n / 10);
}
return product;
}
function productinRange(l, r)
{
if (r - l > 9)
return 0;
else {
var p = 1;
for ( var i = l; i <= r; i++)
p *= getProduct(i);
return p;
}
}
var l = 11, r = 15;
document.write( productinRange(l, r)+ "<br>" );
l = 1, r = 15;
document.write( productinRange(l, r));
</script>
|
Time Complexity: O((r-l)*log(r))
Auxiliary Space: O(1)
Last Updated :
25 Apr, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...