# Find the total count of numbers up to N digits in a given base B

Given two integers N and B, the task is to find the count of natural numbers of Base B up to N digits.

Examples:

Input: N = 2, B = 10
Output: 99
Explanation:
1, 2, 3, 4, 5, 6, 7, 8, 9 are 1 digit Natural numbers of Base 10.
10, 11, 12………99 are 2 digit Natural numbers of Base 10
So, total = 9 + 90 = 99

Input: N = 2, B = 16
Output: 255
Explanation:
There are a total of 240 two digit hexadecimal numbers and 15 one digit hexadecimal numbers.
Therefore, 240 + 15 = 255.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: On observing carefully the count of numbers with N digits in base B is a geometric progression formed with the first term being (B – 1) and a common ratio of B.

Therefore,

Nth term = Number of natutal numbers of N digits in Base B = (B – 1) * BN – 1

Finally, count of all natural numbers in Base B up to N digits can be found out by iterating a loop from 1 to N and calculating the sum of ith term using the above formula.

Below is the implementation of the above approach:

## C++

 `// C++ implementation to find the count ` `// of natural numbers upto N digits ` ` `  `#include ` ` `  `using` `namespace` `std; ` ` `  `// Function to return the count of ` `// natural numbers upto N digits ` `int` `count(``int` `N, ``int` `B) ` `{ ` `    ``int` `sum = 0; ` ` `  `    ``// Loop to iterate from 1 to N ` `    ``// and calculating number of ` `    ``// natural numbers for every 'i'th digit. ` `    ``for` `(``int` `i = 1; i <= N; i++) { ` `        ``sum += (B - 1) * ``pow``(B, i - 1); ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `N = 2, B = 10; ` `    ``cout << count(N, B); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation to find the count ` `// of natural numbers upto N digits ` ` `  `class` `GFG{ ` ` `  `// Function to return the count of ` `// natural numbers upto N digits ` `static` `int` `count(``int` `N, ``int` `B) ` `{ ` `    ``int` `sum = ``0``; ` ` `  `    ``// Loop to iterate from 1 to N ` `    ``// and calculating number of ` `    ``// natural numbers for every 'i'th digit. ` `    ``for` `(``int` `i = ``1``; i <= N; i++){ ` `        ``sum += (B - ``1``) * Math.pow(B, i - ``1``); ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `N = ``2``, B = ``10``; ` `    ``System.out.print(count(N, B)); ` `} ` `} ` ` `  `// This code is contributed by gauravrajput1 `

## Python3

 `# Python3 implementation to find the count ` `# of natural numbers up to N digits ` ` `  `from` `math ``import` `pow` ` `  `# Function to return the count of ` `# natural numbers upto N digits ` `def` `count(N, B): ` `    ``sum` `=` `0` ` `  `    ``# Loop to iterate from 1 to N ` `    ``# and calculating number of ` `    ``# natural numbers for every 'i'th digit. ` `    ``for` `i ``in` `range``(``1``, N``+``1``): ` `        ``sum` `+``=` `(B ``-` `1``) ``*` `pow``(B, i ``-` `1``) ` `    ``return` `sum` ` `  `# Driver Code ` `if` `__name__ ``=``=` `'__main__'``: ` `    ``N ``=` `2` `    ``B ``=` `10` `    ``print``(``int``(count(N, B))) ` ` `  `# This code is contributed by Bhupendra_Singh `

## C#

 `// C# implementation to find the count ` `// of natural numbers upto N digits ` `using` `System; ` `using` `System.Collections.Generic; ` `class` `GFG{ ` ` `  `// Function to return the count of ` `// natural numbers upto N digits ` `static` `int` `count(``int` `N, ``int` `B) ` `{ ` `    ``int` `sum = 0; ` ` `  `    ``// Loop to iterate from 1 to N ` `    ``// and calculating number of ` `    ``// natural numbers for every  ` `    ``// 'i'th digit. ` `    ``for``(``int` `i = 1; i <= N; i++) ` `    ``{ ` `       ``sum += (``int``)((B - 1) * Math.Pow(B, i - 1)); ` `    ``} ` `    ``return` `sum; ` `} ` ` `  `// Driver Code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `N = 2, B = 10; ` `     `  `    ``Console.Write(count(N, B)); ` `} ` `} ` ` `  `// This code is contributed by amal kumar choubey `

Output:

```99
```

Time Complexity: O(N)

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.