# Number of digits in 2 raised to power n

Let n be any power raised to base 2 i.e 2^{n}. We are given the number n and our task is to find out the number of digits contained in the number 2^{n}.

**Examples:**

Input : n = 5 Output : 2 Explanation : 2^{n}= 32, which has only 2 digits. Input : n = 10 Output : 4 Explanation : 2^{n}= 1024, which has only 4 digits.

We can write 2^{n} using logarithms as:

2^{n} = 10^{nlog102}

Now suppose, x = nlog_{10}2,

Therefore, 2^{n} = 10^{x}

Also, we all know that the number, 10^{n} will have (n+1) digits. Therefore, 10^{x} will have (x+1) digits.

Or, we can say that 2^{n} will have (x+1) digits as 2^{n} = 10^{x}.

Therefore, number of digits in 2^{n} = (nlog_{10}2) + 1

Below is the implementation of above idea:

## C++

`// CPP program to find number of digits ` `// in 2^n ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find number of digits ` `// in 2^n ` `int` `countDigits(` `int` `n) ` `{ ` ` ` `return` `(n * ` `log10` `(2) + 1); ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `n = 5; ` ` ` `cout << countDigits(n) << endl; ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find number ` `// of digits in 2^n ` `import` `java.util.*; ` ` ` `class` `Gfg ` `{ ` ` ` `// Function to find number of digits ` ` ` `// in 2^n ` ` ` `static` `int` `countDigits(` `int` `n) ` ` ` `{ ` ` ` `return` `(` `int` `)(n * Math.log10(` `2` `) + ` `1` `); ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `main(String args[]) ` ` ` `{ ` ` ` `int` `n = ` `5` `; ` ` ` `System.out.println(countDigits(n)); ` ` ` `} ` `} ` ` ` `// This code is contributed by Niraj_Pandey. ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find ` `# number of digits in 2^n ` `import` `math ` ` ` `# Function to find number ` `# of digits in 2^n ` `def` `countDigits(n): ` ` ` `return` `int` `(n ` `*` `math.log10(` `2` `) ` `+` `1` `); ` ` ` `# Driver code ` `n ` `=` `5` `; ` `print` `(countDigits(n)); ` ` ` `# This code is contributed ` `# by mits ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find number ` `// of digits in 2^n ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to find ` ` ` `// number of digits in 2^n ` ` ` `static` `int` `countDigits(` `int` `n) ` ` ` `{ ` ` ` `return` `(` `int` `)(n * Math.Log10(2) + 1); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `n = 5; ` ` ` `Console.Write(countDigits(n)); ` ` ` `} ` `} ` `// This code is contributed by ` `// Manish Shaw(manishshaw1) ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find ` `// number of digits in 2^n ` ` ` `// Function to find number ` `// of digits in 2^n ` `function` `countDigits(` `$n` `) ` `{ ` ` ` `return` `intval` `(` `$n` `* log10(2) + 1); ` `} ` ` ` `// Driver code ` `$n` `= 5; ` `echo` `(countDigits(` `$n` `)); ` ` ` `// This code is contributed by ` `// Manish Shaw(manishshaw1) ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

2

## Recommended Posts:

- Find last five digits of a given five digit number raised to power five
- Print last k digits of a^b (a raised to power b)
- Check if a number can be expressed as x^y (x raised to power y)
- Minimum removals in a number to be divisible by 10 power raised to K
- Larger of a^b or b^a (a raised to power b or b raised to power a)
- GCD of a number raised to some power and another number
- Find value of y mod (2 raised to power x)
- K-th digit in 'a' raised to power 'b'
- Find multiple of x closest to or a ^ b (a raised to power b)
- Find unit digit of x raised to power y
- Sum of digits of a given number to a given power
- Number of digits in N factorial to the power N
- Check if given number is a power of d where d is a power of 2
- Count of integers in a range which have even number of odd digits and odd number of even digits
- Check whether product of digits at even places is divisible by sum of digits at odd place of a number

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.