Given an integer N, the task is to check if
(N in base B) is palindrome or not.
Examples:
Input: N = 5, B = 2
Output: Yes
Explanation:
(5)10 = (101)2 which is palindrome. Therefore, the required output is Yes.
Input: N = 4, B = 2
Output: No
Approach: The problem can be solved by checking if the decimal value of the reverse of
is equal to N or not. Follow the steps below to solve the problem.
- Initialize the variable, rev = 0 to store the reverse of N.
- Extract the digits of
- by N % B.
- For each digit of
- Update rev= rev * B + N % B
- Finally, check if N is equal to rev or not
Below is the implementation of the above approach:
C++
// C++ program to implement// the above approach#include <bits/stdc++.h>using namespace std;// Function to check if N in// base B is palindrome or notint checkPalindromeB(int N, int B){ // Stores the reverse of N int rev = 0; // Stores the value of N int N1 = N; // Extract all the digits of N while (N1) { // Generate its reverse rev = rev * B + N1 % B; N1 = N1 / B; } return N == rev;}// Driver Codeint main(){ int N = 5, B = 2; if (checkPalindromeB(N, B)) { cout << "Yes"; } else { cout << "No"; }} |
Java
// Java program to implement // the above approach class GFG{ // Function to check if N in// base B is palindrome or notstatic boolean checkPalindromeB(int N, int B){ // Stores the reverse of N int rev = 0; // Stores the value of N int N1 = N; // Extract all the digits of N while (N1 > 0) { // Generate its reverse rev = rev * B + N1 % B; N1 = N1 / B; } return N == rev;}// Driver code public static void main(String[] args) { int N = 5, B = 2; if (checkPalindromeB(N, B)) { System.out.print("Yes"); } else { System.out.print("No"); }} } // This code is contributed by Dewanti |
Python3
# Python3 program to implement # the above approach # Function to check if N in# base B is palindrome or notdef checkPalindromeB(N, B): # Stores the reverse of N rev = 0; # Stores the value of N N1 = N; # Extract all the digits of N while (N1 > 0): # Generate its reverse rev = rev * B + N1 % B; N1 = N1 // B; return N == rev;# Driver codeif __name__ == '__main__': N = 5; B = 2; if (checkPalindromeB(N, B)): print("Yes"); else: print("No");# This code is contributed by Princi Singh |
C#
// C# program to implement // the above approach using System;class GFG{ // Function to check if N in// base B is palindrome or notstatic bool checkPalindromeB(int N, int B){ // Stores the reverse of N int rev = 0; // Stores the value of N int N1 = N; // Extract all the digits of N while (N1 > 0) { // Generate its reverse rev = rev * B + N1 % B; N1 = N1 / B; } return N == rev;}// Driver code public static void Main(String[] args) { int N = 5, B = 2; if (checkPalindromeB(N, B)) { Console.Write("Yes"); } else { Console.Write("No"); }} } // This code is contributed by Amit Katiyar |
Javascript
<script>// Javascript program to implement// the above approach// Function to check if N in// base B is palindrome or notfunction checkPalindromeB(N, B){ // Stores the reverse of N var rev = 0; // Stores the value of N var N1 = N; // Extract all the digits of N while (N1) { // Generate its reverse rev = rev * B + N1 % B; N1 = parseInt(N1 / B); } return N == rev;}// Driver Codevar N = 5, B = 2;if (checkPalindromeB(N, B)) { document.write("Yes");}else { document.write("No");}</script> |
Yes
Time Complexity:O(logBN)
Auxiliary Space:O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

… [Trackback]
[…] Find More on that Topic: geeksforgeeks.org/check-if-number-is-palindrome-or-not-in-base-b/ […]
… [Trackback]
[…] Read More on to that Topic: geeksforgeeks.org/check-if-number-is-palindrome-or-not-in-base-b/ […]
… [Trackback]
[…] Find More to that Topic: geeksforgeeks.org/check-if-number-is-palindrome-or-not-in-base-b/ […]
… [Trackback]
[…] Find More to that Topic: geeksforgeeks.org/check-if-number-is-palindrome-or-not-in-base-b/ […]
… [Trackback]
[…] Find More Information here on that Topic: geeksforgeeks.org/check-if-number-is-palindrome-or-not-in-base-b/ […]