Open In App

Program to calculate product of digits of a number

Last Updated : 13 Mar, 2023
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

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)


Next Article

Similar Reads