Skip to content
Related Articles

Related Articles

Improve Article

Check if a number is in given base or not

  • Difficulty Level : Easy
  • Last Updated : 06 May, 2021

Given a number as string and a base, check if given number is in given base or not.
Examples: 
 

Input : str = "1010", base = 2
Output : Yes

Input : str = "1015", base = 2
Output : No

Input : str = "AF87", base = 16
Output : Yes

 

The idea is to one by one check if all digits are in given base range. If yes, return true, else return false.
 

C++




// CPP program to check if given
// number is in given base or not.
#include <cstring>
#include <iostream>
using namespace std;
 
bool isInGivenBase(string str, int base)
{
    // Allowed bases are till 16 (Hexadecimal)
    if (base > 16)
    return false;
 
    // If base is below or equal to 10, then all
    // digits should be from 0 to 9.
    else if (base <= 10)
    {
    for (int i = 0; i < str.length(); i++)
        if (!(str[i] >= '0' and
             str[i] < ('0' + base)))
            return false;
    }
 
    // If base is below or equal to 16, then all
    // digits should be from 0 to 9 or from 'A'
    else
    {
    for (int i = 0; i < str.length(); i++)
        if (! ((str[i] >= '0' &&
                str[i] < ('0' + base)) ||                                
                (str[i] >= 'A' &&
                 str[i] < ('A' + base - 10))
            ))                
            return false;
    }
    return true;
}
 
// Driver code
int main()
{
    string str = "AF87";
    if (isInGivenBase(str, 16))
    cout << "Yes";
    else
    cout << "No";
    return 0;
}

Java




// Java program to check if given
// number is in given base or not.
class Geeks {
     
static boolean isInGivenBase(String str, int base)
{
     
    // Allowed bases are till 16 (Hexadecimal)
    if (base > 16)
    return false;
 
    // If base is below or equal to 10, then all
    // digits should be from 0 to 9.
    else if (base <= 10)
    {
    for (int i = 0; i < str.length(); i++)
        if (!(str.charAt(i) >= '0' &&
              str.charAt(i) < ('0' + base)))
            return false;
    }
 
    // If base is below or equal to 16, then all
    // digits should be from 0 to 9 or from 'A'
    else
    {
    for (int i = 0; i < str.length(); i++)
        if (! ((str.charAt(i) >= '0' &&
                str.charAt(i) < ('0' + base)) ||                            
                (str.charAt(i) >= 'A' &&
                 str.charAt(i) < ('A' + base - 10))
            ))            
            return false;
    }
    return true;
}
 
// Driver Class
public static void main(String args[])
 
{
    String str = "AF87";
    if (isInGivenBase(str, 16) == true)
    System.out.println("Yes");
    else
    System.out.println("No");
     
}
}
 
// This code is contributed by ankita_saini

Python3




# Python3 program to check if given
# number is in given base or not.
 
def isInGivenBase(Str, base):
 
    # Allowed bases are till 16 (Hexadecimal)
    if (base > 16):
        return False
 
    # If base is below or equal to 10,
    # then all digits should be from 0 to 9.
    elif (base <= 10):
        for i in range(len(Str)):
            if (Str[i].isnumeric() and
               (ord(Str[i]) >= ord('0') and
                ord(Str[i]) < (ord('0') + base)) == False):
                return False
     
    # If base is below or equal to 16, then all
    # digits should be from 0 to 9 or from 'A'
    else:
        for i in range(len(Str)):
            if (Str[i].isnumeric() and
               ((ord(Str[i]) >= ord('0') and
                 ord(Str[i]) < (ord('0') + base)) or
                (ord(Str[i]) >= ord('A') and
                 ord(Str[i]) < (ord('A') + base - 10))) == False):
                return False
     
    return True
 
# Driver code
Str = "AF87"
if (isInGivenBase(Str, 16)):
    print("Yes")
else:
    print("No")
     
# This code is contributed by Mohit Kumar

C#




// C# program to check if given
// number is in given base or not.
using System;
 
class GFG
{
static bool isInGivenBase(String str,
                          int bas)
{
     
    // Allowed base are
    // till 16 (Hexadecimal)
    if (bas > 16)
    return false;
 
    // If bas is below or equal
    // to 10, then all digits
    // should be from 0 to 9.
    else if (bas <= 10)
    {
    for (int i = 0; i < str.Length; i++)
        if (!(str[i] >= '0' &&
              str[i] < ('0' + bas)))
            return false;
    }
 
    // If base is below or equal
    // to 16, then all digits should
    // be from 0 to 9 or from 'A'
    else
    {
    for (int i = 0; i < str.Length; i++)
        if (! ((str[i] >= '0' &&
                str[i] < ('0' + bas)) ||                        
               (str[i] >= 'A' &&
                str[i] < ('A' + bas - 10))
            ))        
            return false;
    }
    return true;
}
 
// Driver Code
public static void Main(String []args)
{
    String str = "AF87";
    if (isInGivenBase(str, 16) == true)
    Console.WriteLine("Yes");
    else
    Console.WriteLine("No");
}
}
 
// This code is contributed
// by ankita_saini

PHP




<?php
// PHP program to check if given
// number is in given base or not.
 
function isInGivenBase($str, $base)
{
    // Allowed bases are till
    // 16 (Hexadecimal)
    if ($base > 16)
    return false;
 
    // If base is below or equal to
    // 10, then all digits should
    // be from 0 to 9.
    else if ($base <= 10)
    {
    for ($i = 0; $i < strlen($str); $i++)
        if (!($str[$i] >= '0' and
            $str[$i] < ('0' + $base)))
            return false;
    }
 
    // If base is below or equal to 16,
    // then all digits should be from
    // 0 to 9 or from 'A'
    else
    {
    for ($i = 0; $i < strlen($str); $i++)
        if (! (($str[$i] >= '0' &&
                $str[$i] < ('0' + $base)) ||                            
               ($str[$i] >= 'A' &&
                $str[$i] < ('A' + $base - 10))
            ))            
            return false;
    }
    return true;
}
 
// Driver code
$str = "AF87";
 
if (isInGivenBase($str, 16))
    echo "Yes";
else
    echo "No";
 
// This code is contributed by jit_t
?>

Javascript




<script>
 
    // Javascript program to check if given
    // number is in given base or not.
     
    function isInGivenBase(str, bas)
    {
 
        // Allowed base are
        // till 16 (Hexadecimal)
        if (bas > 16)
            return false;
 
        // If bas is below or equal
        // to 10, then all digits
        // should be from 0 to 9.
        else if (bas <= 10)
        {
          for (let i = 0; i < str.length; i++)
              if (!(str[i].charCodeAt() >=
              '0'.charCodeAt() &&
               str[i].charCodeAt() <
               ('0'.charCodeAt() + bas)))
                  return false;
        }
 
        // If base is below or equal
        // to 16, then all digits should
        // be from 0 to 9 or from 'A'
        else
        {
          for (let i = 0; i < str.length; i++)
              if (! ((str[i].charCodeAt() >=
              '0'.charCodeAt() &&
               str[i].charCodeAt() <
               ('0'.charCodeAt() + bas)) ||                        
               (str[i].charCodeAt() >=
               'A'.charCodeAt() &&
                str[i].charCodeAt() <
                ('A'.charCodeAt() + bas - 10))
                  ))        
                  return false;
        }
        return true;
    }
     
    let str = "AF87";
    if (isInGivenBase(str, 16) == true)
        document.write("Yes");
    else
        document.write("No");
 
</script>
Output: 
Yes

 

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :