# 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 = 10Output:99Explanation:

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 = 16Output:255Explanation:

There are a total of 240 two digit hexadecimal numbers and 15 one digit hexadecimal numbers.

Therefore, 240 + 15 = 255.

**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) * B

^{N – 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 i^{th} 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 <bits/stdc++.h>` `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` |

## Javascript

`<script>` `// Javascript implementation to find the count` `// of natural numbers upto N digits` `// Function to return the count of` `// natural numbers upto N digits` `function` `count(N, B)` `{` ` ` `var` `sum = 0;` ` ` `// Loop to iterate from 1 to N and` ` ` `// calculating number of natural` ` ` `// numbers for every 'i'th digit.` ` ` `for` `(` `var` `i = 1; i <= N; i++)` ` ` `{` ` ` `sum += (B - 1) * Math.pow(B, i - 1);` ` ` `}` ` ` `return` `sum;` `}` `// Driver code` `var` `N = 2, B = 10; ` `document.write(count(N, B));` `// This code is contributed by Ankita saini` ` ` `</script>` |

**Output:**

99

**Time Complexity:** O(N)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**