# C program to check if a number is palindrome

Learn how to write a C program to check if a number is a palindrome. This article provides a detailed explanation and sample code for this fundamental task in C programming.

Checking if a number is a palindrome is a common problem in programming that helps in understanding basic arithmetic operations and control structures. A palindrome number is a number that remains the same when its digits are reversed. This article will guide you through writing a C program to check if a given number is a palindrome, providing a detailed explanation and sample code.

## Steps to Check if a Number is Palindrome

To solve this problem, follow these steps:

**Input the Number**: Read the number from the user.**Reverse the Number**: Use a loop to reverse the digits of the number.**Compare the Original and Reversed Numbers**: Check if the reversed number is equal to the original number.**Print the Result**: Output whether the number is a palindrome.

## Write a C program to check if a number is palindrome

Here's a C program to check if a number is a palindrome:

```
#include <stdio.h>
int main() {
int number, originalNumber, digit, reverse = 0;
// Input the number
printf("Enter an integer: ");
scanf("%d", &number);
// Store the original number
originalNumber = number;
// Calculate the reverse of the number
while (number != 0) {
digit = number % 10; // Extract the last digit
reverse = reverse * 10 + digit; // Append the digit to the reversed number
number /= 10; // Remove the last digit
}
// Check if the original number is equal to the reversed number
if (originalNumber == reverse) {
printf("%d is a palindrome.", originalNumber);
} else {
printf("%d is not a palindrome.", originalNumber);
}
return 0;
}
```

**Output**

```
Enter an integer: 12321
12321 is a palindrome.
```

### Explanation

**Input the Number**: The program prompts the user to enter an integer. The`scanf`

function reads the input number and stores it in the variable`number`

.**Store the Original Number**: The original number is stored in the variable`originalNumber`

for later comparison.**Reverse the Number**:- The
`while`

loop continues as long as`number`

is not equal to`0`

. - The last digit is extracted using the modulus operator (
`%`

). For example, if`number`

is`12321`

,`digit = 12321 % 10`

will result in`digit = 1`

. - The extracted digit is appended to the
`reverse`

variable by multiplying`reverse`

by 10 and adding the digit. For the initial iteration,`reverse = 0 * 10 + 1`

results in`reverse = 1`

. - The last digit is removed from
`number`

using integer division (`/`

). For example,`number = 12321 / 10`

results in`number = 1232`

.

- The
**Compare the Original and Reversed Numbers**:- After reversing the number, the program checks if
`originalNumber`

is equal to`reverse`

. - If they are equal, the number is a palindrome. Otherwise, it is not.

- After reversing the number, the program checks if
**Print the Result**: The program prints whether the number is a palindrome to the console using the`printf`

function.

### Detailed Steps

**Step 1: Input the Number**- Use
`printf`

to prompt the user for input. - Use
`scanf`

to read the number from the user.

- Use
**Step 2: Store the Original Number**- Store the original number in a separate variable for later comparison.

**Step 3: Reverse the Number**- Use a
`while`

loop to continue processing as long as`number`

is not zero. - Use the modulus operator (
`%`

) to get the last digit of the number. - Multiply the
`reverse`

variable by 10 and add the extracted digit. - Remove the last digit from the number using integer division (
`/`

).

- Use a
**Step 4: Compare the Original and Reversed Numbers**- Check if the original number is equal to the reversed number.

**Step 5: Print the Result**- Use
`printf`

to display whether the number is a palindrome.

- Use

### Example

For an input of `12321`

, the program will:

- Extract
`1`

and append it to`reverse`

(reverse = 1). - Extract
`2`

and append it to`reverse`

(reverse = 12). - Extract
`3`

and append it to`reverse`

(reverse = 123). - Extract
`2`

and append it to`reverse`

(reverse = 1232). - Extract
`1`

and append it to`reverse`

(reverse = 12321).

Since the original number `12321`

is equal to the reversed number `12321`

, the output will be `12321 is a palindrome.`

For an input of `12345`

, the program will:

- Extract
`5`

and append it to`reverse`

(reverse = 5). - Extract
`4`

and append it to`reverse`

(reverse = 54). - Extract
`3`

and append it to`reverse`

(reverse = 543). - Extract
`2`

and append it to`reverse`

(reverse = 5432). - Extract
`1`

and append it to`reverse`

(reverse = 54321).

Since the original number `12345`

is not equal to the reversed number `54321`

, the output will be `12345 is not a palindrome.`