➤ Even Number in Java
➤ Odd Number in Java
➤ Prime Number in Java
➤ Twin Prime Number
➤ Magic Number in Java
➤ Neon Number in Java
➤ Tech Number in Java
➤ Harshad Number
➤ Armstrong Number
➤ Palindrome Number
➤ Perfect Number in Java
➤ Pronic Number in Java
➤ Spy Number in Java
➤ Kaprekar Number
➤ Automorphic Number
➤ Krishnamurthy Number
➤ Sunny Number in Java
➤ Buzz Number in Java
➤ Evil Number in Java
➤ Duck Number in Java
➤ Nelson Number in Java
➤ Strong Number in Java
➤ Java Special Number
➤ Disarium Number
Java Number Program Using String
➤ Unique Number in Java
➤ Fascinating Number
➤ ISBN Number in Java
Previously we have developed many java programs based on Armstrong numbers. Now in this post, we will develop a palindrome number program in java. It will check the given number is palindrome number or not, and later we will develop an another Java program which will find all palindrome number in a between two numbers.
Palindrome number:- If the Reverse of a number is equal to the same number then the number is called palindrome number.
Example of palindrome number:-
5225 = 5225 So, 5225 is a palindrome number.
123 = 321 So, 123 is not a palindrome number.
This program completely depends on the program to find the reverse of a number. After finding the reverse of a number compare the result and the actual number if both are the same then the given number is a palindrome number else the number is not a palindrome number.
Prerequisite:- Java program to find reverse of a number
The process to check number is a palindrome number or not,
1) Take a number
2) Find the reverse of the number
3) If reverse and the actual number is the same then it a palindrome number
4) Else it is not a palindrome number
Palindrome Number Program in Java
import java.util.Scanner;
public class PalindromeNumber {
// returns reverse of a number
public static int findReverse(int num) {
// declare a temporary variable and
// initialize it with 0
int reverse = 0;
// loop to repeat the process
while(num != 0) {
// find last digit of number
// multiply temporary variable by 10
// add last digit to temporary variable
reverse = (reverse*10 ) + (num%10);
// remove last digit
num = num / 10;
}
return reverse;
}
// returns true if number is Palindrome
public static boolean isPalindrome(int n) {
return (findReverse(n) == n) ? true : false;
}
public static void main(String[] args) {
// declare variable
int number = 0;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// take input
System.out.print("Enter an integer number: ");
number = scan.nextInt();
// check number is palindrome or not
if(isPalindrome(number))
System.out.println(number+
" is a palindrome number");
else
System.out.println(number+
" is not a palindrome number");
// close Scanner class object
scan.close();
}
}
The output for different test-cases:-
Enter an integer number: 12345
12345 is not a palindrome number
Enter an integer number: 1234321
1234321 is a palindrome number
In this program, the isPalindrome(-)
method also can be written using if-else,
public static boolean isPalindrome(int n) {
if(findReverse(n) == n)
return true;
else
return false;
}
Also see:- Special number, Magic number, Armstrong number, Perfect number, Evil Number, Spy Number, Sunny number in Java
Java program to find all palindrome number in a given range
We can also find all the palindrome numbers between the two given numbers. For this purpose, we need to use the loop.
import java.util.Scanner;
public class PalindromeNumberInRange {
// returns reverse of a number
public static int findReverse(int num) {
// declare a temporary variable and
// initialize it with 0
int reverse = 0;
// loop to repeat the process
while(num != 0) {
// find last digit of number
// multiply temporary variable by 10
// add last digit to temporary variable
reverse = (reverse*10 ) + (num%10);
// remove last digit
num = num / 10;
}
return reverse;
}
// returns true if number is Palindrome
public static boolean isPalindrome(int n) {
return (findReverse(n)==n) ? true : false;
}
public static void main(String[] args) {
// declare variables
int minRange , maxRange;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// read inputs
System.out.print("Enter min Range value::");
minRange = scan.nextInt();
System.out.print("Enter max Range value::");
maxRange = scan.nextInt();
// find in the given range
System.out.println("Palindrome numbers "+
"from "+minRange+" to "+maxRange+":: ");
for(int i = minRange; i<= maxRange; i++) {
if(isPalindrome(i))
System.out.print( i + " ");
}
// close Scanner class object
scan.close();
}
}
The output for different test-cases:-
Enter min Range value:: 1
Enter max Range value:: 100
Palindrome numbers from 1 to 100:: 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99
Enter min Range value:: 100
Enter max Range value:: 200
Palindrome numbers from 100 to 200:: 101 111 121 131 141 151 161 171 181 191
Enter min Range value:: 1000
Enter max Range value:: 2000
Palindrome numbers from 1000 to 2000:: 1001 1111 1221 1331 1441 1551 1661 1771 1881 1991
Another Way to Check the Palindrome Number
The idea is to compare the first digit with the last digit. Similarly, the second digit of the number with the (last-1) digit of the number, and so on… If all returns true then the given number is a palindrome number else it is not a palindrome number.
In this method first, we need to find the total number of digits in the given number. We need to compare only up to number_of_digits/2
If the number of digits in the given number is odd then no need to compare the middle number.
import java.util.Scanner;
public class PalindromeNumberAnotherWay {
// returns true if number is Palindrome
public static int findNumberOfDigits(int n) {
int digits = 0;
while(n != 0) {
digits++;
n /= 10;
}
return digits;
}
public static boolean isPalindrome(int num) {
// declare the variables
int leading_digit = 0; // first digit
int trailing_digit = 0; // last digit
int n = num; // variable to store number
// count number of digits in the number
int digit_count = findNumberOfDigits(num);
// Find appropriate divisor to extract
// the leading digit
int divisor =(int)Math.pow(10,digit_count-1);
// loop
for(int i=1; i<=digit_count/2; i++) {
leading_digit=n/divisor; //first digit
trailing_digit = n%10; // last digit
// compare first and last digit
if(leading_digit != trailing_digit)
return false;
n = n % divisor; // remove first digit
n = n / 10; // remove last digit
// last digit & first digit are removed
// so also divide the divisor by 10*10
divisor /= 100;
}
return true;
}
public static void main(String[] args) {
// declare variable
int number = 0;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// take input
System.out.print("Enter an integer number:");
number = scan.nextInt();
// check number is palindrome or not
if(isPalindrome(number))
System.out.println(number+
" is a palindrome number");
else
System.out.println(number+
" is not a palindrome number");
// close Scanner class object
scan.close();
}
}
We can also use String to check the given number is a palindrome number or not, See:- Palindrome String in Java
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!