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