Program to calculate product of digits of a number
Last Updated :
13 Mar, 2023
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++
#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 main()
{
int n = 4513;
cout << (getProduct(n));
}
|
Java
import java.io.*;
class GFG {
static int getProduct( int n)
{
int product = 1 ;
while (n != 0 ) {
product = product * (n % 10 );
n = n / 10 ;
}
return product;
}
public static void main(String[] args)
{
int n = 4513 ;
System.out.println(getProduct(n));
}
}
|
Python3
def getProduct(n):
product = 1
while (n ! = 0 ):
product = product * (n % 10 )
n = n / / 10
return product
n = 4513
print (getProduct(n))
|
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;
}
public static void Main()
{
int n = 4513;
Console.WriteLine(getProduct(n));
}
}
|
PHP
<?php
<?php
function getProduct( $n )
{
$product = 1;
while ( $n != 0)
{
$product = $product * ( $n % 10);
$n = intdiv( $n , 10);
}
return $product ;
}
$n = 4513;
echo getProduct( $n );
?>
|
Javascript
<script>
function getProduct(n)
{
let product = 1;
while (n != 0)
{
product = product * (n % 10);
n = Math.floor(n / 10);
}
return product;
}
let n = 4513;
document.write(getProduct(n));
</script>
|
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;
for ( int i = 0; i < str.length(); i++) {
product = product * (str[i] - 48);
}
return product;
}
int main()
{
string st = "4513" ;
cout << getProduct(st);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int getProduct(String str)
{
int product = 1 ;
for ( int i = 0 ; i < str.length(); i++)
{
product *= str.charAt(i) - '0' ;
}
return product;
}
public static void main(String[] args)
{
String st = "4513" ;
System.out.println(getProduct(st));
}
}
|
Python3
def getProduct(n):
product = 1
num = str (n)
for i in num:
product = product * int (i)
return product
n = 4513
print (getProduct(n))
|
C#
using System;
using System.Collections;
class GFG
{
static int getProduct(String str)
{
int product = 1;
for ( int i = 0; i < str.Length; i++)
{
product = product * (str[i] - 48);
}
return product;
}
public static void Main(String[] args)
{
String st = "4513" ;
Console.Write(getProduct(st));
}
}
|
Javascript
<script>
function getProduct(str)
{
let product = 1;
for (let i = 0; i < str.length; i++)
{
product = product * (parseInt(str[i]));
}
return product;
}
let st = "4513" ;
document.write(getProduct(st));
</script>
|
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++
#include <iostream>
using namespace std;
int getProduct( int n){
if (n == 0){
return 1 ;
}
return (n%10) * getProduct(n/10) ;
}
int main() {
cout<<getProduct(125) ;
return 0;
}
|
Java
import java.util.*;
class GFG
{
static int getProduct( int n)
{
if (n == 0 ){
return 1 ;
}
return (n% 10 ) * getProduct(n/ 10 ) ;
}
public static void main(String[] args)
{
System.out.println(getProduct( 125 ));
}
}
|
Python3
def getProduct(n):
if (n = = 0 ):
return 1
return (n % 10 ) * getProduct(n / / 10 ) ;
print (getProduct( 125 ));
|
C#
using System;
using System.Collections.Generic;
class GFG
{
static int getProduct( int n)
{
if (n == 0){
return 1 ;
}
return (n%10) * getProduct(n/10) ;
}
public static void Main( string [] args)
{
Console.WriteLine(getProduct(125));
}
}
|
Javascript
function getProduct(n){
if (n == 0){
return 1 ;
}
return (n%10) * getProduct(Math.floor(n/10)) ;
}
console.log(getProduct(125));
|
Time Complexity: O(log10N)
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...