Friday, July 5, 2024
HomeData ModellingData Structure & AlgorithmProgram to calculate product of digits of a number

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:  

  1. Get the number
  2. Declare a variable to store the product and set it to 1
  3. Repeat the next two steps till the number is not 0
  4. Get the rightmost digit of the number with help of remainder ‘%’ operator by dividing it with 10 and multiply it with product.
  5. Divide the number by 10 with help of ‘/’ operator
  6. 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 10^{19}                    , 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

  1. Get the number
  2.  Get the remainder and pass the next remaining digits
  3. Get the rightmost digit of the number with help of the remainder ‘%’ operator by dividing it by 10 and multiply it to the product.
  4.   Divide the number by 10 with help of ‘/’ operator to remove the rightmost digit
  5.  Check the base case with n = 0
  6. 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)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Calisto Chipfumbu
Calisto Chipfumbuhttp://cchipfumbu@gmail.com
I have 5 years' worth of experience in the IT industry, primarily focused on Linux and Database administration. In those years, apart from learning significant technical knowledge, I also became comfortable working in a professional team and adapting to my environment, as I switched through 3 roles in that time.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments