Program to calculate product of digits of a number
Given a number, the task is to find the product of the digits of a number.
Examples:
Input: n = 4513 Output: 60 Input: n = 5249 Output: 360
General Algorithm for product of digits in a given number:
- Get the number
- Declare a variable to store the product and set it to 1
- Repeat the next two steps till the number is not 0
- Get the rightmost digit of the number with help of remainder ‘%’ operator by dividing it with 10 and multiply it with product.
- Divide the number by 10 with help of ‘/’ operator
- Print or return the product.
Below is the solution to get the product of the digits:
C++
// C++ program to compute // product of digits in the number. #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; } // Driver program int main() { int n = 4513; cout << (getProduct(n)); } // This code is contributed by // Surendra_Gangwar |
Java
// Java program to compute // product of digits in the number. import java.io.*; 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; } // Driver program public static void main(String[] args) { int n = 4513 ; System.out.println(getProduct(n)); } } |
Python3
# Python3 program to compute # product of digits in the number. # Function to get product of digits def getProduct(n): product = 1 while (n ! = 0 ): product = product * (n % 10 ) n = n / / 10 return product # Driver Code n = 4513 print (getProduct(n)) # This code is contributed # by mohit kumar |
C#
// C# program to compute // product of digits in the number. 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; } // Driver program public static void Main() { int n = 4513; Console.WriteLine(getProduct(n)); } } // This code is contributed by Ryuga |
PHP
<?php <?php // PHP program to compute // $product of digits in the number. /* Function to get $product of digits */ function getProduct( $n ) { $product = 1; while ( $n != 0) { $product = $product * ( $n % 10); $n = intdiv( $n , 10); } return $product ; } // Driver code $n = 4513; echo getProduct( $n ); // This code is contributed by // ihritik ?> |
Javascript
<script> // JavaScript program to compute // product of digits in the number. // Function to get product of digits function getProduct(n) { let product = 1; while (n != 0) { product = product * (n % 10); n = Math.floor(n / 10); } return product; } // Driver code let n = 4513; document.write(getProduct(n)); // This code is contributed by Manoj. </script> |
Output
60
Time Complexity: O(log10N)
Auxiliary Space: O(1)
Method #2:Using string() method:
- Convert the integer to string
- Traverse the string and multiply the characters by converting them to integer
When this method can be used?: When the number of digits of a number exceeds , we can’t take that number as an integer since the range of long long int doesn’t satisfy the given number. So take input as a string, run a loop from start to the length of the string and increase the sum with that character(in this case it is numeric)
Below is the implementation:
C++
#include <iostream> using namespace std; int getProduct(string str) { int product = 1; // Traversing through the string for ( int i = 0; i < str.length(); i++) { // Since ascii value of // numbers starts from 48 // so we subtract it from sum product = product * (str[i] - 48); } return product; } // Driver Code int main() { string st = "4513" ; cout << getProduct(st); return 0; } |
Java
import java.io.*; class GFG { static int getProduct(String str) { int product = 1 ; // Traversing through the string for ( int i = 0 ; i < str.length(); i++) { // Since ascii value of // numbers starts from 48 // so we subtract it from sum product *= str.charAt(i) - '0' ; } return product; } // Driver Code public static void main(String[] args) { String st = "4513" ; System.out.println(getProduct(st)); } } //this code is contributed by shivanisinghss2110 |
Python3
# Python3 program to compute # product of digits in the number. # Function to get product of digits def getProduct(n): product = 1 # Converting integer to string num = str (n) # Traversing the string for i in num: product = product * int (i) return product # Driver Code n = 4513 print (getProduct(n)) # This code is contributed by vikkycirus |
C#
using System; using System.Collections; class GFG { static int getProduct(String str) { int product = 1; // Traversing through the string for ( int i = 0; i < str.Length; i++) { // Since ascii value of // numbers starts from 48 // so we subtract it from sum product = product * (str[i] - 48); } return product; } // Driver Code public static void Main(String[] args) { String st = "4513" ; Console.Write(getProduct(st)); } } //This code is contributed by shivanisinghss2110 |
Javascript
<script> function getProduct(str) { let product = 1; // Traversing through the string for (let i = 0; i < str.length; i++) { // Since ascii value of // numbers starts from 48 // so we subtract it from sum product = product * (parseInt(str[i])); } return product; } // Driver Code let st = "4513" ; document.write(getProduct(st)); // This code is contributed by unknown2108 </script> |
Output
60
Time Complexity: O(N)
Auxiliary Space: O(1)
Method #3: Recursion
- Get the number
- Get the remainder and pass the next remaining digits
- Get the rightmost digit of the number with help of the remainder ‘%’ operator by dividing it by 10 and multiply it to the product.
- Divide the number by 10 with help of ‘/’ operator to remove the rightmost digit
- Check the base case with n = 0
- Print or return the product
C++
//Recursive function to get product of the digits #include <iostream> using namespace std; int getProduct( int n){ // Base Case if (n == 0){ return 1 ; } // get the last digit and multiply it with remaining digits return (n%10) * getProduct(n/10) ; } int main() { // call the function cout<<getProduct(125) ; return 0; } |
Java
// Recursive function to get product of the digits import java.util.*; class GFG { static int getProduct( int n) { // Base Case if (n == 0 ){ return 1 ; } // get the last digit and multiply it with remaining digits return (n% 10 ) * getProduct(n/ 10 ) ; } public static void main(String[] args) { // call the function System.out.println(getProduct( 125 )); } } // This code is contributed by phasing17 |
Python3
# Python3 program to implement the approach # Recursive function to get product of the digits def getProduct(n): # Base Case if (n = = 0 ): return 1 # get the last digit and multiply it with remaining digits return (n % 10 ) * getProduct(n / / 10 ) ; # Driver Code # call the function print (getProduct( 125 )); # This code is contributed by phasing17 |
C#
// Recursive function to get product of the digits using System; using System.Collections.Generic; class GFG { static int getProduct( int n) { // Base Case if (n == 0){ return 1 ; } // get the last digit and multiply it with remaining digits return (n%10) * getProduct(n/10) ; } public static void Main( string [] args) { // call the function Console.WriteLine(getProduct(125)); } } // This code is contributed by phasing17 |
Javascript
// JS program to implement the approach // Recursive function to get product of the digits function getProduct(n){ // Base Case if (n == 0){ return 1 ; } // get the last digit and multiply it with remaining digits return (n%10) * getProduct(Math.floor(n/10)) ; } // Driver Code // call the function console.log(getProduct(125)); // This code is contributed by phasing17 |
Output
10
Time Complexity: O(log10N)
Auxiliary Space: O(1)