Open In App

Number of Digits in a^b

Improve
Improve
Like Article
Like
Save
Share
Report

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




// 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^b
int no_of_digit(int a, int b)
{
    return ((int)(b * log10(a)) + 1);
}
     
// driver program
int main()
{
    int a = 2, b = 100;
    cout <<"no. of digits = "<<
                  no_of_digit(a, b);
}
 
// This code is contributed by Smitha


Java




// Java Program to calculate
// no. of digits in a^b
import java.io.*;
public 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(String[] args)
    {
        int a = 2, b = 100;
        System.out.print("no. of digits = " +
                          no_of_digit(a, b));
    }
}


Python3




# Python Program to calculate
# no. of digits in a^b
import math
 
# function to calculate number
# of digits in a^b
def no_of_digit(a, b):
    return ((int)(b * math.log10(a)) + 1)
 
# Driver Program
a = 2
b = 100
print("no of digits = ", no_of_digit(a, b))
 
# This code is contributed by Shrikant13


C#




// C# Program to calculate
// no. of digits in a^b
using 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
// PHP 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 ((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.
?>


Javascript




<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


Last Updated : 16 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads