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 <stdio.h>
int reverseDigits( int num)
{
int rev_num = 0;
while (num > 0) {
rev_num = rev_num * 10 + num % 10;
num = num / 10;
}
return rev_num;
}
int isPalindrome( int n)
{
int rev_n = reverseDigits(n);
if (rev_n == n)
return 1;
else
return 0;
}
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
class GFG
{
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;
}
static int isPalindrome( int n)
{
int rev_n = reverseDigits(n);
if (rev_n == n)
return 1 ;
else
return 0 ;
}
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" ));
}
}
|
Python3
def reverseDigits(num) :
rev_num = 0 ;
while (num > 0 ) :
rev_num = rev_num * 10 + num % 10
num = num / / 10
return rev_num
def isPalindrome(n) :
rev_n = reverseDigits(n);
if (rev_n = = n) :
return 1
else :
return 0
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 )
|
C#
using System;
class GFG
{
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;
}
static int isPalindrome( int n)
{
int rev_n = reverseDigits(n);
if (rev_n == n)
return 1;
else
return 0;
}
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" ));
}
}
|
PHP
<?php
function reverseDigits( $num )
{
$rev_num = 0;
while ( $num > 0)
{
$rev_num = $rev_num * 10 +
$num % 10;
$num = $num / 10;
}
return $rev_num ;
}
function isPalindrome( $n )
{
$rev_n = reverseDigits( $n );
if ( $rev_n == $n )
return 1;
else
return 0;
}
$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" ;
?>
|
Javascript
<script>
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 isPalindrome(n)
{
let rev_n = reverseDigits(n);
if (rev_n == n)
return 1;
else
return 0;
}
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" );
</script>
|
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++
#include <bits/stdc++.h>
using namespace std;
bool isPalindrome( int n)
{
string num = to_string(n);
string reversed_num = num;
reverse(reversed_num.begin(), reversed_num.end());
if (num == reversed_num)
{
return true ;
}
return false ;
}
int main() {
int n = 4562;
if (isPalindrome(n))
{
cout<< "Is 4562 a Palindrome number? : " << "Yes" <<endl;
}
else {
cout<< "Is 4562 a Palindrome number? : " << "NO" <<endl;
}
n = 2002;
if (isPalindrome(n))
{
cout<< "Is 2002 a Palindrome number? : " << "Yes" <<endl;
}
else {
cout<< "Is 20022 a Palindrome number? : " << "NO" <<endl;
}
return 0;
}
|
Java
import java.util.*;
public class Main {
public static boolean isPalindrome( int n) {
String num = Integer.toString(n);
String reversed_num = new StringBuilder(num).reverse().toString();
if (num.equals(reversed_num)) {
return true ;
}
return false ;
}
public static void main(String[] args) {
int n = 4562 ;
if (isPalindrome(n)) {
System.out.println( "Is 4562 a Palindrome number? : Yes" );
} else {
System.out.println( "Is 4562 a Palindrome number? : NO" );
}
n = 2002 ;
if (isPalindrome(n)) {
System.out.println( "Is 2002 a Palindrome number? : Yes" );
} else {
System.out.println( "Is 2002 a Palindrome number? : NO" );
}
}
}
|
Python3
def isPalindrome(n: int ) - > bool :
num = str (n)
reversed_num = num[:: - 1 ]
if num = = reversed_num:
return True
return False
if __name__ = = "__main__" :
n = 4562
if isPalindrome(n):
print ( "Is 4562 a Palindrome number? : Yes" )
else :
print ( "Is 4562 a Palindrome number? : NO" )
n = 2002
if isPalindrome(n):
print ( "Is 2002 a Palindrome number? : Yes" )
else :
print ( "Is 2002 a Palindrome number? : NO" )
|
Javascript
function isPalindrome(n) {
let num = n.toString();
let reversedNum = num.split( '' ).reverse().join( '' );
if (num === reversedNum) {
return true ;
}
return false ;
}
let n = 4562;
if (isPalindrome(n)) {
console.log( "Is 4562 a Palindrome number? : Yes" );
} else {
console.log( "Is 4562 a Palindrome number? : NO" );
}
n = 2002;
if (isPalindrome(n)) {
console.log( "Is 2002 a Palindrome number? : Yes" );
} else {
console.log( "Is 2002 a Palindrome number? : NO" );
}
|
C#
using System;
class Program {
static bool IsPalindrome( int n)
{
string num = n.ToString();
char [] reversed_num = num.ToCharArray();
Array.Reverse(reversed_num);
string reversed_num_str = new string (reversed_num);
if (num == reversed_num_str) {
return true ;
}
return false ;
}
static void Main( string [] args)
{
int n = 4562;
if (IsPalindrome(n)) {
Console.WriteLine(
"Is 4562 a Palindrome number? : Yes" );
}
else {
Console.WriteLine(
"Is 4562 a Palindrome number? : NO" );
}
n = 2002;
if (IsPalindrome(n)) {
Console.WriteLine(
"Is 2002 a Palindrome number? : Yes" );
}
else {
Console.WriteLine(
"Is 20022 a Palindrome number? : NO" );
}
}
}
|
OutputIs 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)