C Program to Check Whether a Number is Palindrome or Not

In this tutorial, i am going to show you how to check whether a number is palindrome or not in the c program using for loop, while loop, recursion and function.

Algorithm and Programs To Check A Number Is Palindrome Or Not in C

  • Algorithm To Check A Number Is Palindrome Or Not
  • 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

Algorithm To Check A Number Is Palindrome Or Not

Follow the below given 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.

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 result 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 result 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 result 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 result of the above c program; as follows:

Enter an integer number:- 121
121 is a palindrome.

More C Programming Tutorials

Leave a Comment