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
#include<iostream>
#include<math.h>
using namespace std;
int no_of_digit( int a, int b)
{
return (( int )(b * log10 (a)) + 1);
}
int main()
{
int a = 2, b = 100;
cout << "no. of digits = " <<
no_of_digit(a, b);
}
|
Java
import java.io.*;
public class GFG {
static int no_of_digit( int a, int b)
{
return (( int )(b * Math.log10(a)) + 1 );
}
public static void main(String[] args)
{
int a = 2 , b = 100 ;
System.out.print( "no. of digits = " +
no_of_digit(a, b));
}
}
|
Python3
import math
def no_of_digit(a, b):
return (( int )(b * math.log10(a)) + 1 )
a = 2
b = 100
print ( "no of digits = " , no_of_digit(a, b))
|
C#
using System;
class GFG {
static int no_of_digit( int a, int b)
{
return (( int )(b * Math.Log10(a)) + 1);
}
public static void Main()
{
int a = 2, b = 100;
Console.Write( "no. of digits = " +
no_of_digit(a, b));
}
}
|
PHP
<?php
function no_of_digit( $a , $b )
{
return ((int)( $b * log10( $a )) + 1);
}
$a = 2; $b = 100;
echo ( "no. of digits = " .no_of_digit( $a , $b ));
?>
|
Javascript
<script>
function no_of_digit(a, b)
{
return (Math.round((b * Math.log10(a)) + 1));
}
let a = 2, b = 100;
document.write( "no. of digits = " +
no_of_digit(a, b));
</script>
|
Output
no. of digits = 31
Last Updated :
16 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...