Open In App

Program to check the number is Palindrome or not

Last Updated : 16 Nov, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an integer N, write a program that returns true if the given number is a palindrome, else return false. 
Examples: 
 

Input: N = 2002 
Output: true
Input: N = 1234
Output: false


 


 


Approach: 
A simple method for this problem is to first reverse digits of n, then compare the reverse of n with n. If both are same, then return true, else false.
Below is the implementation of the above approach: 
 

C++
#include <iostream>

int reverseDigits(int num) {
    int rev_num = 0;
    while (num > 0) {
        rev_num = rev_num * 10 + num % 10;
        num = num / 10;
    }
    return rev_num;
}

bool isPalindrome(int n) {
    int rev_n = reverseDigits(n);
    return (rev_n == n);
}

int main() {
    int n = 4562;

    if (isPalindrome(n)) {
        std::cout << "Is " << n << " a Palindrome number? -> true" << std::endl;
    } else {
        std::cout << "Is " << n << " a Palindrome number? -> false" << std::endl;
    }

    n = 2002;

    if (isPalindrome(n)) {
        std::cout << "Is " << n << " a Palindrome number? -> true" << std::endl;
    } else {
        std::cout << "Is " << n << " a Palindrome number? -> false" << std::endl;
    }

    return 0;
}
C
// C program to check whether a number
// is Palindrome or not.

#include <stdio.h>

/* Iterative function to reverse digits of num*/
int reverseDigits(int num)
{
    int rev_num = 0;
    while (num > 0) {
        rev_num = rev_num * 10 + num % 10;
        num = num / 10;
    }
    return rev_num;
}

/* Function to check if n is Palindrome*/
int isPalindrome(int n)
{

    // get the reverse of n
    int rev_n = reverseDigits(n);

    // Check if rev_n and n are same or not.
    if (rev_n == n)
        return 1;
    else
        return 0;
}

/*Driver program to test reverseDigits*/
int main()
{
    int n = 4562;
    printf("Is %d a Palindrome number? -> %s\n", n,
           isPalindrome(n) == 1 ? "true" : "false");

    n = 2002;
    printf("Is %d a Palindrome number? -> %s\n", n,
           isPalindrome(n) == 1 ? "true" : "false");
    return 0;
}
Java
// Java program to check whether a number
// is Palindrome or not.

class GFG
{
    /* Iterative function to reverse digits of num*/
    static int reverseDigits(int num)
    {
        int rev_num = 0;
        while (num > 0) {
            rev_num = rev_num * 10 + num % 10;
            num = num / 10;
        }
        return rev_num;
    }
    
    /* Function to check if n is Palindrome*/
    static int isPalindrome(int n)
    {
    
        // get the reverse of n
        int rev_n = reverseDigits(n);
    
        // Check if rev_n and n are same or not.
        if (rev_n == n)
            return 1;
        else
            return 0;
    }
    
    /*Driver program to test reverseDigits*/
    public static void  main(String []args)
    {
        int n = 4562;
        System.out.println("Is" + n + "a Palindrome number? -> " +
            (isPalindrome(n) == 1 ? "true" : "false"));
    
        n = 2002;
        
        System.out.println("Is" + n + "a Palindrome number? -> " +
            (isPalindrome(n) == 1 ? "true" : "false"));

    }

}

// This code is contributed 
// by Hritik Raj ( ihritik )
Python3
# Python3 program to check whether a 
# number is Palindrome or not. 

# Iterative function to reverse
# digits of num
def reverseDigits(num) : 

    rev_num = 0; 
    while (num > 0) :
        rev_num = rev_num * 10 + num % 10
        num = num // 10
    
    return rev_num 

# Function to check if n is Palindrome
def isPalindrome(n) :

    # get the reverse of n 
    rev_n = reverseDigits(n); 

    # Check if rev_n and n are same or not. 
    if (rev_n == n) :
        return 1
    else :
        return 0

# Driver Code
if __name__ == "__main__" :

    n = 4562
    
    if isPalindrome(n) == 1 :
        print("Is", n, "a Palindrome number? ->", True)
        
    else :
        print("Is", n, "a Palindrome number? ->", False)

    n = 2002
    
    if isPalindrome(n) == 1 :
        print("Is", n, "a Palindrome number? ->", True)
        
    else :
        print("Is", n, "a Palindrome number? ->", False)

# This code is contributed by Ryuga
C#
// C# program to check whether a number
// is Palindrome or not.

using System;
class GFG
{
    /* Iterative function to reverse digits of num*/
    static int reverseDigits(int num)
    {
        int rev_num = 0;
        while (num > 0) {
            rev_num = rev_num * 10 + num % 10;
            num = num / 10;
        }
        return rev_num;
    }
    
    /* Function to check if n is Palindrome*/
    static int isPalindrome(int n)
    {
    
        // get the reverse of n
        int rev_n = reverseDigits(n);
    
        // Check if rev_n and n are same or not.
        if (rev_n == n)
            return 1;
        else
            return 0;
    }
    
    /*Driver program to test reverseDigits*/
    public static void  Main()
    {
        int n = 4562;
        Console.WriteLine("Is" + n + "a Palindrome number? -> " +
            (isPalindrome(n) == 1 ? "true" : "false"));
    
        n = 2002;
        
        Console.WriteLine("Is" + n + "a Palindrome number? -> " +
            (isPalindrome(n) == 1 ? "true" : "false"));

    }

}

// This code is contributed 
// by Hritik Raj ( ihritik )
JavaScript
<script>

// Javascript program to check whether a number 
// is Palindrome or not. 

/* Iterative function to reverse digits of num*/
function reverseDigits(num) 
{ 
    let rev_num = 0; 
    while (num > 0) { 
        rev_num = rev_num * 10 + num % 10; 
        num = Math.floor(num / 10); 
    } 
    return rev_num; 
} 

/* Function to check if n is Palindrome*/
function isPalindrome(n) 
{ 

    // get the reverse of n 
    let rev_n = reverseDigits(n); 

    // Check if rev_n and n are same or not. 
    if (rev_n == n) 
        return 1; 
    else
        return 0; 
} 

/*Driver program to test reverseDigits*/
 
    let n = 4562; 
    document.write("Is " + n + " a Palindrome number? -> ") 
    document.write(isPalindrome(n) == 1 ? "true" : "false" + "<br>"); 

    n = 2002; 
    document.write("Is " + n + " a Palindrome number? -> ")
    document.write(isPalindrome(n) == 1 ? "true" : "false");
    
// This code is contributed by Mayank Tyagi

</script>
PHP
<?php
// PHP program to check whether a number
// is Palindrome or not.

// Iterative function to reverse 
// digits of num
function reverseDigits($num)
{
    $rev_num = 0;
    while ($num > 0) 
    {
        $rev_num = $rev_num * 10 + 
                   $num % 10;
        $num = $num / 10;
    }
    return $rev_num;
}

// Function to check if n is Palindrome
function isPalindrome($n)
{

    // get the reverse of n
    $rev_n = reverseDigits($n);

    // Check if rev_n and n are same or not.
    if ($rev_n == $n)
        return 1;
    else
        return 0;
}

// Driver Code
$n = 4562;
echo "Is ", $n , " a Palindrome number? ->";

if(isPalindrome($n) == 1)
    echo "true" ;
else
    echo "false";
echo "\n";

$n = 2002;
echo "Is ", $n , " a Palindrome number? ->";
if(isPalindrome(!$n))
    echo "true" ;
else
    echo "false";

// This code is contributed by jit_t
?>

Output
Is 4562 a Palindrome number? -> false
Is 2002 a Palindrome number? -> true

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

Another Approach: 
First , convert that number to string and check if the reverse of that string equal to original string .

Below is the implementation of the above approach:

C++
// C++ implementation of the above approach

#include <bits/stdc++.h>
using namespace std;

// Function to check if a given number is palindrome or not
bool isPalindrome(int n)
{
  
        string num = to_string(n);//converting integer to sting
        string reversed_num = num;
      
         // reverse the string
        reverse(reversed_num.begin(), reversed_num.end());
       
        if (num == reversed_num) 
        {// checking a number is 
          //palindrome or not
            return true;
        }
      return false;
}

// Drive Code
int main() {
  
    int n = 4562;
  // Function call
  if(isPalindrome(n))
  { //printing Yes if,4562 is a palindrome number
    cout<<"Is 4562 a Palindrome number? : "<<"Yes"<<endl;
  }
  else{//else no
    cout<<"Is 4562 a Palindrome number? : "<<"NO"<<endl;
      }

    n = 2002;
  // Function call
    if(isPalindrome(n))
     { //printing Yes if,2002is a palindrome number
      cout<<"Is 2002 a Palindrome number? : "<<"Yes"<<endl;
     }
     else{ //else no
       cout<<"Is 20022 a Palindrome number? : "<<"NO"<<endl;
        }
    
   
    return 0;
}

// This code is contributed by nikhilsainiofficial546
Java
// Java implementation of the above approach
import java.util.*;

public class Main {
    // Function to check if a given number is palindrome or not
    public static boolean isPalindrome(int n) {
        String num = Integer.toString(n); // Converting integer to string
        String reversed_num = new StringBuilder(num).reverse().toString(); // Reverse the string
        
        // Checking if the number is palindrome or not
        if (num.equals(reversed_num)) {
            return true;
        }
        return false;
    }
    
    // Drive Code
    public static void main(String[] args) {
        int n = 4562;
        
        // Function call
        if (isPalindrome(n)) {
            System.out.println("Is 4562 a Palindrome number? : Yes");
        } else {
            System.out.println("Is 4562 a Palindrome number? : NO");
        }
        
        n = 2002;
        // Function call
        if (isPalindrome(n)) {
            System.out.println("Is 2002 a Palindrome number? : Yes");
        } else {
            System.out.println("Is 2002 a Palindrome number? : NO");
        }
    }
}

// This code is contributed by Prajwal Kandekar
Python3
# Python3 implementation of checking if a given number is a palindrome or not
def isPalindrome(n: int) -> bool:
    num = str(n)  # converting integer to string
    reversed_num = num[::-1]  # reversing the string using slicing

    if num == reversed_num:  # checking if the number is a palindrome or not
        return True
    return False


# Driver code
if __name__ == "__main__":
    n = 4562
    
    # Function call
    if isPalindrome(n):
      
        # printing Yes if 4562 is a palindrome number
        print("Is 4562 a Palindrome number? : Yes")
    else:
        # else No
        print("Is 4562 a Palindrome number? : NO")

    n = 2002
    
    # Function call
    if isPalindrome(n):
        # printing Yes if 2002 is a palindrome number
        print("Is 2002 a Palindrome number? : Yes")
    else:
        # else No
        print("Is 2002 a Palindrome number? : NO")
C#
// C# code to implement the above approach
using System;

class Program {
    // Function to check if a given number is palindrome or
    // not
    static bool IsPalindrome(int n)
    {
        // converting integer to sting
        string num = n.ToString();
        // reverse the string
        char[] reversed_num = num.ToCharArray();
        Array.Reverse(reversed_num);
        string reversed_num_str = new string(reversed_num);
        // checking a number is palindrome or not
        if (num == reversed_num_str) {
            return true;
        }
        return false;
    }

    // Drive Code
    static void Main(string[] args)
    {
        int n = 4562;
        // Function call
        if (IsPalindrome(n)) {
            // printing Yes if,4562 is a palindrome number
            Console.WriteLine(
                "Is 4562 a Palindrome number? : Yes");
        }
        else {
            // else no
            Console.WriteLine(
                "Is 4562 a Palindrome number? : NO");
        }

        n = 2002;
        // Function call
        if (IsPalindrome(n)) {
            // printing Yes if,2002is a palindrome number
            Console.WriteLine(
                "Is 2002 a Palindrome number? : Yes");
        }
        else {
            // else no
            Console.WriteLine(
                "Is 20022 a Palindrome number? : NO");
        }
    }
}
JavaScript
// JavaScript implementation of checking if a given number is a palindrome or not
function isPalindrome(n) {
  let num = n.toString(); // converting integer to string
  let reversedNum = num.split('').reverse().join(''); // reversing the string using split, reverse, and join

  // checking if the number is a palindrome or not
  if (num === reversedNum) {
    return true;
  }
  return false;
}

// Driver code
let n = 4562;

// Function call
if (isPalindrome(n)) {
  // printing Yes if 4562 is a palindrome number
  console.log("Is 4562 a Palindrome number? : Yes");
} else {
  // else No
  console.log("Is 4562 a Palindrome number? : NO");
}

n = 2002;

// Function call
if (isPalindrome(n)) {
  // printing Yes if 2002 is a palindrome number
  console.log("Is 2002 a Palindrome number? : Yes");
} else {
  // else No
  console.log("Is 2002 a Palindrome number? : NO");
}

Output
Is 4562 a Palindrome number? : NO
Is 2002 a Palindrome number? : Yes

Time Complexity: O(m) where m is the length of the number in string format
Auxiliary Space: O(m)


Next Article

Similar Reads