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

• Last Updated : 05 Apr, 2021

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) * 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 digitsint 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 Codeint 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 digitsstatic 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 Codepublic 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 digitsdef 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 Codeif __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 digitsusing System;using System.Collections.Generic;class GFG{ // Function to return the count of// natural numbers upto N digitsstatic 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 Codepublic static void Main(String[] args){    int N = 2, B = 10;         Console.Write(count(N, B));}} // This code is contributed by amal kumar choubey

Javascript


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.

My Personal Notes arrow_drop_up