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++
// 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
Please Login to comment...