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++ 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 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 |
# 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# 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 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 ?> |
<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)