Open In App

Check if a number with even number of digits is palindrome or not

Last Updated : 31 Jul, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

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>

Output
Palindrome

Time Complexity: O(1)
Auxiliary Space: O(1)


Next Article

Similar Reads

  翻译: