Sunday, December 2

Palindromic Number



Write a C program to check whether the given number is a palindromic number.

If a number, which when read in both forward and backward way is same, then such a number is called a
palindrome number.

Program:

#include <stdio.h>
int main()
{
int n, n1, rev = 0, rem;
printf("Enter any number: \n");
scanf("%d", &n);
n1 = n;
/* logic */
while (n > 0)
    {
       rem = n % 10;
       rev = rev * 10 + rem;
       n = n / 10;
     }
if (n1 == rev)
    {
        printf("Given number is a palindromic number");
     }
else
    {
        printf("Given number is not a palindromic number");
     }
return 0;
}


Output:
Enter any number: 121
Given number is a palindrome

Explanation with an example:
Consider a number n=121, reverse=0, remainder;
number=121
now the while loop is executed /* the condition (n>0) is satisfied */
/* calculate remainder */
remainder of 121 divided by 10=(121%10)=1;
now reverse=(reverse*10)+remainder
=(0*10)+1 /* we have initialized reverse=0 */
=1
number=number/10
=121/10
=12
now the number is 12, greater than 0. The above process is repeated for number=12.
remainder=12%10=2;
reverse=(1*10)+2=12;
number=12/10=1;
now the number is 1, greater than 0. The above process is repeated for number=1.
remainder=1%10=1;
reverse=(12*10)+1=121;
number=1/10 /* the condition n>0 is not satisfied,control leaves the while loop */
Program stops here. The given number=121 equals the reverse of the number. Thus the given number is a
palindrome number.