Given a number N containing an even number of digits. The task is to check whether that number is palindrome or not.
Examples:
Input: N = 123321 Output: Palindrome Input: 1234 Output: Not palindrome
A Naive Approach is to traverse from the front and back of that number and stop where they do not match.
An Efficient Approach is to use the below fact:
Palindrome Number having even number of digits is always divisible by 11.
Suppose the number is d1 d2 d3 d4…dn, whered1, d2, d3.. are digits of a number. If it is a palindrome then d1 = dn, d2 = dn-1, d3 = dn-2…..and so on. Now since divisibility of 11 states that the difference of sum of alternate digits of a number should be zero and same in the case of palindrome having even no. of digits i.e.
d1 + d3 + …+ dn-1 = d2 + d4 + d6 + … + dn
So, a palindromic number having even number of digits is always divisible by 11.
C++
// C++ program to find number is palindrome // or not without using any extra space #include <bits/stdc++.h> using namespace std; // Function to check if the number is palindrome bool isPalindrome( int n) { // if divisible by 11 then true if (n % 11 == 0) { return true ; } // if not divisible by 11 return false ; } // Driver code int main() { isPalindrome(123321) ? cout << "Palindrome" : cout << "Not Palindrome" ; return 0; } |
Java
// Java program to find number // is palindrome or not without // using any extra space class GFG { // Function to check if the // number is palindrome static boolean isPalindrome( int n) { // if divisible by 11 then true if (n % 11 == 0 ) { return true ; } // if not divisible by 11 return false ; } // Driver code public static void main(String[] args) { System.out.println(isPalindrome( 123321 ) ? "Palindrome" : "Not Palindrome" ); } } // This code is contributed by Bilal |
Python3
# Python 3 program to find number is palindrome # or not without using any extra space. # Function to check if the number is palindrome def isPalindrome(n) : # if divisible by 11 then return True if n % 11 = = 0 : return True # if not divisible by 11 then return False return False # Driver code if __name__ = = "__main__" : n = 123321 if isPalindrome(n) : print ( "Palindrome" ) else : print ( "Not Palindrome" ) # This code is contributed by ANKITRAI1 |
C#
// C# program to find number // is palindrome or not without // using any extra space using System; class GFG { // Function to check if the // number is palindrome static bool isPalindrome( int n) { // if divisible by // 11 then true if (n % 11 == 0) { return true ; } // if not divisible by 11 return false ; } // Driver code public static void Main() { Console.Write(isPalindrome(123321) ? "Palindrome" : "Not Palindrome" ); } } // This code is contributed // by ChitraNayal |
PHP
<?php // PHP program to find number // is palindrome or not without // using any extra space // Function to check if the // number is palindrome function isPalindrome( $n ) { // if divisible by // 11 then true if ( $n % 11 == 0) { return true; } // if not divisible by 11 return false; } // Driver code echo isPalindrome(123321) ? "Palindrome" : "Not Palindrome" ; // This code is contributed // by ChitraNayal ?> |
Javascript
<script> // Javascript program to find number // is palindrome or not without // using any extra space // Function to check if the // number is palindrome function isPalindrome(n) { // if divisible by 11 then true if (n % 11 == 0) { return true ; } // if not divisible by 11 return false ; } // Driver code document.write(isPalindrome(123321) ? "Palindrome" : "Not Palindrome" ); // This code contributed by Princi Singh </script> |
Palindrome
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!