C program to check whether a number is palindrome or not; Through this tutorial, we will learn how to check whether a number is palindrome or not in the c program using for loop, while loop, recursion and function.
Algorithm To Check A Number Is Palindrome Or Not
Use the following steps to write a program to check whether a number is palindrome or not; as follows:
- Take the number as input from the user
- Reverse a given number.
- Compare the original number with the reverse value.
- If they matched, then it is a palindrome number. Otherwise, it is not a palindrome number in C programming.
Programs To Check A Number Is Palindrome Or Not in C
- C Program To Check A Number Is Palindrome Or Not using For Loop
- C Program To Check A Number Is Palindrome Or Not using While Loop
- C Program To Check A Number Is Palindrome Or Not using Recursion
- C Program To Check A Number Is Palindrome Or Not using Function
C Program To Check A Number Is Palindrome Or Not using For Loop
#include<stdio.h>
void main()
{
int i,n,r,s=0;
printf("\n Enter Integer Number:");
scanf("%d",&n);
//LOOP TO FIND REVERSE OF A NUMBER
for(i=n;i>0; )
{
r=i%10;
s=s*10+r;
i=i/10;
}
/* CHECKING IF THE NUMBER ENTERED AND THE REVERSE NUMBER IS EQUAL OR NOT */
if(s==n)
{
printf("\n %d is a Palindrome Number",n);
}
else
{
printf("\n %d is not a Palindrome Number",n);
}
return 0;
}
The output of the above c program; as follows:
Enter Integer Number:312 312 is not a Palindrome Number
C Program To Check A Number Is Palindrome Or Not using While Loop
/* C program to check whether a number is palindrome or not */
#include <stdio.h>
int main()
{
int number, revNumber = 0, rem = 0, tempNumber;
printf("Enter an integer number:- ");
scanf("%d", &number);
tempNumber = number;
while (tempNumber != 0) {
rem = tempNumber % 10;
revNumber = revNumber * 10 + rem;
tempNumber /= 10;
}
/* checking if number is equal to reverse number */
if (revNumber == number)
printf("%d is a palindrome.", number);
else
printf("%d is not a palindrome.", number);
return 0;
}
The output of the above c program; as follows:
Enter an integer number:- 11 11 is a palindrome.
C Program To Check A Number Is Palindrome Or Not using Recursion
/**
* C program to check palindrome number using recursion
*/
#include <stdio.h>
#include <math.h>
/* Function declarations */
int reverse(int num);
int isPalindrome(int num);
int main()
{
int num;
/* Input any number from user */
printf("Enter any number: ");
scanf("%d", &num);
if(isPalindrome(num) == 1)
{
printf("%d is palindrome number.\n", num);
}
else
{
printf("%d is NOT palindrome number.\n", num);
}
return 0;
}
/**
* Function to check whether a number is palindrome or not.
* This function returns 1 if the number is palindrome otherwise 0.
*/
int isPalindrome(int num)
{
/*
* Check if the given number is equal to
* its reverse.
*/
if(num == reverse(num))
{
return 1;
}
return 0;
}
/**
* Recursive function to find reverse of any number
*/
int reverse(int num)
{
/* Find number of digits in num */
int digit = (int)log10(num);
/* Recursion base condition */
if(num == 0)
return 0;
return ((num%10 * pow(10, digit)) + reverse(num/10));
}
The output of the above c program; as follows:
Enter an integer number:- 121 121 is a palindrome.
C Program To Check A Number Is Palindrome Or Not using Function
/* C program to check whether a number is palindrome or not */
#include <stdio.h>
/*function to check Palindrome Number*/
int isPalindrome(int num)
{
int tempNumber = num;
int dig, revNumber;
/*getting reverse number*/
revNumber = 0;
while (num > 0) {
dig = num % 10;
revNumber = (revNumber * 10) + dig;
num /= 10;
}
if (revNumber == tempNumber)
return 1; /*Palindrome Number*/
else
return 0; /*Not a Palindrome Number*/
}
int main()
{
int number;
printf("Enter an integer number:- ");
scanf("%d", &number);
if (isPalindrome(number))
printf("%d is a palindrome.", number);
else
printf("%d is not a palindrome.", number);
return 0;
}
The output of the above c program; as follows:
Enter an integer number:- 121 121 is a palindrome.