Given a range [L, R]. The task is to find the total number of Hexadecimal alphabets that are required to write every number in the range.
Hexadecimal alphabets are the alphabets in the range [A, F] which are required to represent decimal numbers from the range [10, 15]

Examples:

Input: L = 10, R = 15
Output: 6
All the numbers from 10 to 15 contain a hexadecimal alphabet.

Input: L = 15, R = 16
Output: 1
15 and 16 are represented in hexadecimal as F and 10 respectively.

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

Approach:

1. First of all, check if num ≥ 10 and num ≤ 15. If yes then increment the count as decimal numbers from 10 to 15 contain a hexadecimal alphabet.
2. If num > 15 than update the number as num = num % 16. If it is greater than 10 than increment the count.
3. Repeat 2nd step till number (for every number) is greater than 0.

Below is the implementation of the above approach:

C++

 // C++ implementation of the approach #include using namespace std;    // Function that will count // total hexadecimal alphabet int countHexadecimal(int L, int R) {     int count = 0;     for (int i = L; i <= R; i++) {            // All the numbers from 10 to 15         // contain a hexadecimal alphabet         if (i >= 10 && i <= 15)             count++;            // If i > 15 then perform mod by 16 repeatedly         // till the number is > 0         // If number % 16 > 10 then increase count         else if (i > 15) {             int k = i;             while (k != 0) {                 if (k % 16 >= 10)                     count++;                 k = k / 16;             }         }     }        return count; }    // Driver code int main() {     int L = 5, R = 100;     cout << countHexadecimal(L, R);        return 0; }

Java

 // Java implementation of the approach class GFG {        // Function that will count // total hexadecimal alphabet static int countHexadecimal(int L, int R) {     int count = 0;     for (int i = L; i <= R; i++)      {            // All the numbers from 10 to 15         // contain a hexadecimal alphabet         if (i >= 10 && i <= 15)             count++;            // If i > 15 then perform mod by 16          // repeatedly till the number is > 0         // If number % 16 > 10 then increase count         else if (i > 15)         {             int k = i;             while (k != 0)              {                 if (k % 16 >= 10)                     count++;                 k = k / 16;             }         }     }        return count; }    // Driver code public static void main(String args[]) {     int L = 5, R = 100;     System.out.print(countHexadecimal(L, R)); } }    // This code is contributed // by Akanksha Rai

Python3

 # Python3 implementation of the approach     # Function that will count  # total hexadecimal alphabet  def countHexadecimal(L, R) :      count = 0;      for i in range(L, R + 1) :            # All the numbers from 10 to 15          # contain a hexadecimal alphabet          if (i >= 10 and i <= 15) :             count += 1;             # If i > 15 then perform mod by 16          # repeatedly till the number is > 0          # If number % 16 > 10 then          # increase count          elif (i > 15) :             k = i;              while (k != 0) :                  if (k % 16 >= 10) :                     count += 1;                  k = k // 16;         return count;     # Driver code  if __name__ == "__main__" :     L = 5; R = 100;             print(countHexadecimal(L, R));     # This code is contributed by Ryuga

C#

 // C# implementation of the approach using System;    class GFG {        // Function that will count // total hexadecimal alphabet static int countHexadecimal(int L, int R) {     int count = 0;     for (int i = L; i <= R; i++)      {            // All the numbers from 10 to 15         // contain a hexadecimal alphabet         if (i >= 10 && i <= 15)             count++;            // If i > 15 then perform mod by 16 repeatedly         // till the number is > 0         // If number % 16 > 10 then increase count         else if (i > 15)         {             int k = i;             while (k != 0)              {                 if (k % 16 >= 10)                     count++;                 k = k / 16;             }         }     }        return count; }    // Driver code public static void Main() {     int L = 5, R = 100;     Console.Write(countHexadecimal(L, R)); } }    // This code is contributed // by Akanksha Rai

PHP

 = 10 && \$i <= 15)             \$count++;            // If i > 15 then perform mod by 16          // repeatedly till the number is > 0         // If number % 16 > 10 then increase count         else if (\$i > 15)         {             \$k = \$i;             while (\$k != 0)             {                 if (\$k % 16 >= 10)                     \$count++;                 \$k = \$k / 16;             }         }     }        return \$count; }    // Driver code \$L = 5; \$R = 100; echo countHexadecimal(\$L, \$R);    // This code is contributed by Ita_c ?>

Output:

36

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.