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.

**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; ` `} ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

## 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 ` |

*chevron_right*

*filter_none*

**Output:**

99

**Time Complexity:** O(N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.