Integer Palindrome

Integer Palindrome

You need to determine whether the given integer (in base 10) is a palindrome or not in base B. Base (or radix) is written as subscript text. A number is a palindrome if it reads the same in both directions, for example 12110 is a palindrome, and 12210 is not. If the integerB is a palindrome, return True, if not, return False. Read more about number bases.

The most common base is decimal. To convert an integer10 to another base you need to divide it by base and take reminders until the number becomes equal zero. Let's look at the following example - convert integer 610 into the binary form 62.

Integer Quotient Reminder Normal Reversed
63000
3111001
101110011
0
Since reversed 011 is not equal normal 110 - 62 is not a palindrome.

To return back to the decimal form, start from zero, multiply by base and add reminders. For 62 == 110 it's (((0*2) + 1)*2 + 1)*2 + 0 = 6.

Input: Given integer and base B (integer).

Output: Bool.

Examples:

assert int_palindrome(6, 2) == False
assert int_palindrome(34, 2) == False
assert int_palindrome(455, 2) == True

Preconditions:

  • number >= 0;
  • number is integer;
  • B >= 2;
  • B is integer.