Number of digits in the product of two numbers

Given two integers a and b. The problem is to find the number of digits in the product of these two integers.

Examples:

Input : a = 12, b = 4
Output : 2
12 * 4 = 48 (2 digits)

Input : a = 33, b = -24
Output : 3
33 * -24 = -792 (3 digits)

Naive Approach: Multiply the two numbers and then by using looping construct find the number of digits in the product. Take the absolute value of the product for finding the number of digits.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to count number of digits
// in the product of two numbers
#include <bits/stdc++.h>
  
using namespace std;
  
// function to count number of digits 
// in the product of two numbers
int countDigits(int a, int b)
{
    int count = 0;    
      
    // absolute value of the 
    // product of two numbers
    int p = abs(a*b);
      
    // if product is 0
    if (p == 0)    
        return 1;
      
    // count number of digits in the product 'p'    
    while (p > 0)    
    {
        count++;
        p = p / 10;
    }
      
    // required count of digits    
    return count;
}
  
// Driver program to test above
int main()
{
    int a = 33;
    int b = -24;
    cout << "Number of digits = "
         << countDigits(a,b);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation to count 
// number of digits in the product 
// of two numbers
import java.io.*;
import java.math.*;
  
class GFG {
      
    // function to count number of digits 
    // in the product of two numbers
    static int countDigits(int a, int b)
    {
        int count = 0
          
        // absolute value of the 
        // product of two numbers
        int p = Math.abs(a * b);
          
        // if product is 0
        if (p == 0
            return 1;
          
        // count number of digits in
        // the product 'p' 
        while (p > 0
        {
            count++;
            p = p / 10;
        }
          
        // required count of digits 
        return count;
    }
      
    // Driver program to test above
    public static void main(String args[])
    {
        int a = 33;
        int b = -24;
        System.out.println("Number of digits = "
                           + countDigits(a, b));
    }
}
  
/*This code is contributed by Nikita Tiwari.*/

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation to count 
# number of digits in the product 
# of two numbers
  
# function to count number of digits 
# in the product of two numbers
def countDigits(a, b) :
    count = 0
      
    # absolute value of the 
    # product of two numbers
    p = abs(a * b)
      
    # if product is 0
    if (p == 0) :
        return 1
      
    # count number of digits 
    # in the product 'p' 
    while (p > 0) :
        count = count + 1
        p = p // 10
      
      
    # required count of digits 
    return count
  
  
# Driver program to test above
a = 33
b = -24
print("Number of digits = ",
       countDigits(a,b))
  
# This code is contributed by Nikita Tiwari.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to count
// number of digits in the product
// of two numbers
using System;
  
class GFG {
      
    // function to count number of digits
    // in the product of two numbers
    static int countDigits(int a, int b)
    {
        int count = 0;
  
        // absolute value of the
        // product of two numbers
        int p = Math.Abs(a * b);
  
        // if product is 0
        if (p == 0)
            return 1;
  
        // count number of digits in
        // the product 'p'
        while (p > 0) {
            count++;
            p = p / 10;
        }
  
        // required count of digits
        return count;
    }
  
    // Driver program to test above
    public static void Main()
    {
        int a = 33;
        int b = -24;
        Console.WriteLine("Number of digits = " +
                              countDigits(a, b));
    }
}
  
// This code is contributed by Sam007

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation to count 
// number of digits in the 
// product of two numbers
  
// function to count number 
// of digits in the product 
// of two numbers
function countDigits($a, $b)
{
    $count = 0; 
      
    // absolute value of the 
    // product of two numbers
    $p = abs($a * $b);
      
    // if product is 0
    if ($p == 0) 
        return 1;
      
    // count number of digits
    // in the product 'p' 
    while ($p > 0) 
    {
        $count++;
        $p = (int)($p / 10);
    }
      
    // required count of digits 
    return $count;
}
  
// Driver Code
$a = 33;
$b = -24;
echo "Number of digits = "
        countDigits($a, $b);
  
// This code is contributed by mits
?>

chevron_right



Output:



Number of digits = 3

Efficient Approach: To count the number of digits in the product of two numbers we can use the formula given below:

                count = floor(log10(a) + log10(b)) + 1

Here both the numbers need to be positive integers. For this we can take the absolute values of a and b.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to count number of digits
// in the product of two numbers
#include <bits/stdc++.h>
  
using namespace std;
  
// function to count number of digits 
// in the product of two numbers
int countDigits(int a, int b)
{
    // if either of the number is 0, then
    // product will be 0
    if (a == 0 || b == 0)
        return 1;
          
    // required count of digits            
    return floor(log10(abs(a)) + log10(abs(b))) + 1;    
}
  
// Driver program to test above
int main()
{
    int a = 33;
    int b = -24;
    cout << countDigits(a,b);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// JAVA Code for Number of digits 
// in the product of two numbers
class GFG {
      
    // function to count number of digits 
    // in the product of two numbers
    public static int countDigits(int a, int b)
    {
        // if either of the number is 0, then
        // product will be 0
        if (a == 0 || b == 0)
            return 1;
               
        // required count of digits            
        return (int)Math.floor(Math.log10(Math.abs(a)) + 
                            Math.log10(Math.abs(b))) + 1;    
    }
      
    /* Driver program to test above function */
    public static void main(String[] args) 
    {
        int a = 33;
        int b = -24;
        System.out.print(countDigits(a,b));
    }
}
// This code is contributed by Arnav Kr. Mandal.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation to count
# number of digits in the product
# of two numbers
import math 
  
# function to count number of digits 
# in the product of two numbers
def countDigits(a, b) :
      
    # if either of the number is 0, 
    # then product will be 0
    if (a == 0 or b == 0) :
        return 1
          
    # required count of digits         
    return math.floor(math.log10(abs(a)) + 
                   math.log10(abs(b))) + 1
  
  
# Driver program to test above
a = 33
b = -24
print(countDigits(a, b))
  
# This code is contributed by Nikita Tiwari.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# Code for Number of digits 
// in the product of two numbers
using System;
  
class GFG {
      
    // function to count number of
    // digits in the product of two 
    // numbers
    public static int countDigits(int a,
                                  int b)
    {
        // if either of the number is 0,
        // then product will be 0
        if (a == 0 || b == 0)
            return 1;
              
        // required count of digits         
        return (int)Math.Floor(
                 Math.Log10(Math.Abs(a))
          + Math.Log10(Math.Abs(b))) + 1; 
    }
      
    // Driver code
    static void Main()
    {
        int a = 33;
        int b = -24;
        Console.Write(countDigits(a, b));
          
    }
}
  
// This code is contributed by Sam007

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation to count
// number of digits in the product
// of two numbers
  
// function to count number of digits 
// in the product of two numbers
function countDigits($a, $b)
{
    // if either of the number is 
    // 0, then product will be 0
    if ($a == 0 or $b == 0)
        return 1;
          
    // required count of digits     
    return floor(log10(abs($a)) +
                 log10(abs($b))) + 1;
}
  
// Driver Code
$a = 33;
$b = -24;
echo countDigits($a, $b);
  
// This code is contributed by mits
?>

chevron_right



Output:

3

This article is contributed by Ayush Jauhari. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up

Improved By : Sam007, Mithun Kumar