Number of Digits in a^b

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^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
// Java Program to calculate // no. of digits in a^bimport 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^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#
// 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// 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.?> |
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 zambiatek!



