# Check if a given number can be represented in given a no. of digits in any base

• Difficulty Level : Medium
• Last Updated : 12 Apr, 2021

Given a number and no. of digits to represent the number, find if given number can be represented in given no. of digits in any base from 2 to 32.
Examples :

```Input: 8 4
Output: Yes
Possible in base 2 as 8 in base 2 is 1000

Input: 8 2
Output: Yes
Possible in base 3 as 8 in base 3 is 22

Input: 8 3
Output: No
Not possible in any base```

We strongly recommend you to minimize your browser and try this yourself first.
The idea is to check all bases one by one starting from base 2 to base 32. How do we check for a given base? Following are simple steps.
1) IF number is smaller than base and digit is 1, then return true.
2) Else if digit is more than 1 and number is more than base, then remove the last digit from num by doing num/base, reduce the number of digits and recur.
3) Else return false
Below is the implementation of above idea.

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.

## C++

 `// C++ program to check if a given number can be``// represented in given number of digits in any base``#include ``using` `namespace` `std;` `// Returns true if 'num' can be represented usind 'dig'``// digits in 'base'``bool` `checkUtil(``int` `num, ``int` `dig, ``int` `base)``{``    ``// Base case``    ``if` `(dig==1 && num < base)``       ``return` `true``;` `    ``// If there are more than 1 digits left and number``    ``// is more than base, then remove last digit by doing``    ``// num/base, reduce the number of digits and recur``    ``if` `(dig > 1 && num >= base)``       ``return` `checkUtil(num/base, --dig, base);` `    ``return` `false``;``}` `// return true of num can be represented in 'dig'``// digits in any base from 2 to 32``bool` `check(``int` `num, ``int` `dig)``{``    ``// Check for all bases one by one``    ``for` `(``int` `base=2; base<=32; base++)``       ``if` `(checkUtil(num, dig, base))``            ``return` `true``;``    ``return` `false``;``}` `// Driver program``int` `main()``{``    ``int` `num = 8;``    ``int` `dig = 3;``    ``(check(num, dig))? cout << ``"Yes"` `: cout << ``"No"``;``    ``return` `0;``}`

## Java

 `// Java program to check if a``// given number can be represented``// in given number of digits in any base``class` `GFG``{``    ``// Returns true if 'num' can be``    ``// represented usind 'dig' digits in 'base'``    ``static` `boolean` `checkUtil(``int` `num, ``int` `dig, ``int` `base)``    ``{``        ``// Base case``        ``if` `(dig==``1` `&& num < base)``        ``return` `true``;``    ` `        ``// If there are more than 1 digits``        ``// left and number is more than base,``        ``// then remove last digit by doing num/base,``        ``//  reduce the number of digits and recur``        ``if` `(dig > ``1` `&& num >= base)``        ``return` `checkUtil(num / base, --dig, base);``    ` `        ``return` `false``;``    ``}``    ` `    ``// return true of num can be``    ``// represented in 'dig' digits``    ``// in any base from 2 to 32``    ``static` `boolean` `check(``int` `num, ``int` `dig)``    ``{``        ``// Check for all bases one by one``        ``for` `(``int` `base = ``2``; base <= ``32``; base++)``        ``if` `(checkUtil(num, dig, base))``                ``return` `true``;``        ``return` `false``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `num = ``8``;``        ``int` `dig = ``3``;``        ``if``(check(num, dig))``            ``System.out.print(``"Yes"``);``        ``else``            ``System.out.print(``"No"``);``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python program to check``# if a given number can be``# represented in given number``# of digits in any base` `# Returns true if 'num' can``# be represented using 'dig'``# digits in 'base'``def` `checkUtil(num,dig,base):``    ` `    ``# Base case``    ``if` `(dig``=``=``1` `and` `num < base):``        ``return` `True`` ` `    ``# If there are more than 1``    ``# digits left and number``    ``# is more than base, then``    ``# remove last digit by doing``    ``# num/base, reduce the number``    ``# of digits and recur``    ``if` `(dig > ``1` `and` `num >``=` `base):``        ``return` `checkUtil(num``/``base, ``-``-``dig, base)`` ` `    ``return` `False`` ` `# return true of num can``# be represented in 'dig'``# digits in any base from 2 to 32``def` `check(num,dig):` `    ``# Check for all bases one by one``    ``for` `base ``in` `range``(``2``,``33``):` `        ``if` `(checkUtil(num, dig, base)):``            ``return` `True``    ``return` `False` `# driver code``num ``=` `8``dig ``=` `3``if``(check(num, dig)``=``=``True``):``    ``print``(``"Yes"``)``else``:``    ``print``(``"No"``)` `# This code is contributed``# by Anant Agarwal.`

## C#

 `// C# program to check if a given``// number can be represented in``// given number of digits in any base``using` `System;` `class` `GFG {``    ` `    ``// Returns true if 'num' can be``    ``// represented usind 'dig' digits``    ``// in 'base'``    ``static` `bool` `checkUtil(``int` `num, ``int` `dig,``                          ``int` `i)``    ``{``        ` `        ``// Base case``        ``if` `(dig == 1 && num < i)``        ``return` `true``;``    ` `        ``// If there are more than 1 digits``        ``// left and number is more than base,``        ``// then remove last digit by doing``        ``// num/base, reduce the number of``        ``// digits and recur``        ``if` `(dig > 1 && num >= i)``        ``return` `checkUtil((num / i), --dig, i);``    ` `        ``return` `false``;``    ``}``    ` `    ``// return true of num can be``    ``// represented in 'dig' digits``    ``// in any base from 2 to 32``    ``static` `bool` `check(``int` `num, ``int` `dig)``    ``{``        ` `        ``// Check for all bases one by one``        ``for` `(``int` `i = 2; i <= 32; i++)``        ``if` `(checkUtil(num, dig, i))``                ``return` `true``;``        ``return` `false``;``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `num = 8;``        ``int` `dig = 3;``        ``if``(check(num, dig))``            ``Console.WriteLine(``"Yes"``);``        ``else``            ``Console.WriteLine(``"No"``);``    ``}``}` `// This code is contributed by Sam007.`

## PHP

 ` 1 && ``\$num` `>= ``\$base``)``    ``return` `checkUtil(``\$num` `/ ``\$base``,``                   ``--``\$dig``, ``\$base``);` `    ``return` `false;``}` `// return true of num can be``// represented in 'dig' digits``// in any base from 2 to 32``function` `check(``\$num``, ``\$dig``)``{``    ``// Check for all bases one by one``    ``for` `(``\$base` `= 2; ``\$base` `<= 32; ``\$base``++)``    ``if` `(checkUtil(``\$num``, ``\$dig``, ``\$base``))``            ``return` `true;``    ``return` `false;``}` `// Driver Code``\$num` `= 8;``\$dig` `= 3;``if` `(check(``\$num``, ``\$dig``) == true)``echo` `"Yes"` `;``else``echo` `"No"``;` `// This code is contributed by ajit``?>`

## Javascript

 ``

Output :

`No`