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> |
no. of digits = 31
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!