Number of Digits in a^b - GeeksforGeeks

06 Apr, 2021
Given two positive integers a and b, task is to find the number of digits in a^b (a raised to the power b).Example:  
Input: a = 2  b = 5
Output: no. of digits = 2
Explanation:
2^5 = 32 
Hence, no. of digits = 2

Input: a = 2  b = 100
Output: no. of digits = 31
Explanation:
2^100 = 1.2676506e+30
Hence, no. of digits = 31
 
Approach: The number of digits in a^b can be calculated using the formula:  
Number of Digits = 1 + b * (log10a)
When a number is divided by 10, it is reduced by 1 digit. Example: 
554 / 10 = 55, 55 / 10 = 5
Notice, 554 initially has 3 digits but after division there are 2 digits 55 and after further division there is only 1 digit 5. So it can be concluded that to count number of digits, how many times a number is divided by 10 to reach 1 needs to be calculated. log base 10 of a number is the number of times a number needs to be divided by 10 to reach 1 but as 1 itself is not included in log base 10, 1 is added to get the number of digits. Note: Floor value of b * (log10a) is taken.Below is the implementation to calculate the number of digits in a^b.  
CPP
Java
Python3
C#
PHP
Javascript
// CPP Program to calculate// no. of digits in a^b#include<iostream>#include<math.h>using namespace std; // function to calculate number// of digits in a^bint no_of_digit(int a, int b){    return ((int)(b * log10(a)) + 1);}     // driver programint main(){    int a = 2, b = 100;    cout <<"no. of digits = "<<                  no_of_digit(a, b);} // This code is contributed by Smitha
// Java Program to calculate// no. of digits in a^bclass GFG {         // function to calculate number    // of digits in a^b    static int no_of_digit(int a, int b)    {        return ((int)(b * Math.log10(a)) + 1);    }         // driver program    public static void main(String[] args)    {        int a = 2, b = 100;        System.out.print("no. of digits = " +                          no_of_digit(a, b));    }}
# Python Program to calculate# no. of digits in a^bimport math # function to calculate number# of digits in a^bdef no_of_digit(a, b):    return ((int)(b * math.log10(a)) + 1) # Driver Programa = 2b = 100print("no of digits = ", no_of_digit(a, b)) # This code is contributed by Shrikant13
// C# Program to calculate// no. of digits in a^busing System; class GFG {         // function to calculate number    // of digits in a^b    static int no_of_digit(int a, int b)    {        return ((int)(b * Math.Log10(a)) + 1);    }         // driver program    public static void Main()    {        int a = 2, b = 100;        Console.Write("no. of digits = " +                        no_of_digit(a, b));    }} // This code is contributed by Smitha.
<?php// PHP Program to calculate// no. of digits in a^b // function to calculate number// of digits in a^bfunction no_of_digit($a, $b){    return ((int)($b * log10($a)) + 1);}     // Driver Code$a = 2; $b = 100;echo("no. of digits = " .no_of_digit($a, $b)); // This code is contributed by Ajit.?>
<script> // JavaScript Program to calculate// no. of digits in a^b // function to calculate number    // of digits in a^b    function no_of_digit(a, b)    {        return (Math.round((b * Math.log10(a)) + 1));    }  // Driver program         let a = 2, b = 100;        document.write("no. of digits = " +                          no_of_digit(a, b));                 // This code is contributed by susmitakundugoaldanga.</script>
Output:  
no.of digits = 31
 
shrikanth13
jit_t
Smitha Dinesh Semwal
susmitakundugoaldanga
number-digits
Mathematical
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Print all possible combinations of r elements in a given array of size n
Operators in C / C++
The Knight's tour problem | Backtracking-1
Program for factorial of a number
Program for Decimal to Binary Conversion
Find minimum number of coins that make a given value
Program to find sum of elements in a given array