C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Loop Programs in C

Check whether a number is palindrome (loop)

Introduction

A palindrome number is a number that remains the same when its digits are reversed.

Examples:

  • 121 → Palindrome
  • 1331 → Palindrome
  • 123 → Not a palindrome

We’ll reverse the number using a for, while and do..while loop and compare it with the original number.

 

C Program: Check whether a number is palindrome (loop)

Method 1: Using for loop

C

#include <stdio.h>

 

int main() {

    int num, original, reversed = 0, digit;

 

    // Input

    printf("Enter a positive integer: ");

    scanf("%d", &num);

 

    // Validate input

    if (num < 0) {

        printf("Invalid input! Please enter a positive number.\n");

        return 1;

    }

 

    original = num; // store original number

 

    // Reverse number using for loop

    for (; num != 0; num /= 10) {

        digit = num % 10;              // extract last digit

        reversed = reversed * 10 + digit; // build reversed number

    }

 

    // Check palindrome

    if (original == reversed)

        printf("%d is a palindrome number.\n", original);

    else

        printf("%d is not a palindrome number.\n", original);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 121
121 is a palindrome number.

OUTPUT 2 :
Enter a positive integer: 123
123 is not a palindrome number.
 
OUTPUT 3 :
Enter a positive integer: -454
Invalid input! Please enter a positive number.

Explanation

  1. Input a positive integer.
  2. Store the original value in original.
  3. Reverse the number using a for loop:
    • Extract last digit using digit = num % 10.
    • Build reversed number using reversed = reversed * 10 + digit.
    • Remove the last digit using num /= 10.
  4. Compare original and reversed.
  5. If they are equal → number is a palindrome.

 

C Program: Check whether a number is palindrome (loop)

Method 2: Using while loop

C

#include <stdio.h>

 

int main() {

    int num, original, reversed = 0, digit;

 

    // Input

    printf("Enter a positive integer: ");

    scanf("%d", &num);

 

    // Validate input

    if (num < 0) {

        printf("Invalid input! Please enter a positive number.\n");

        return 1;

    }

 

    original = num; // store the original number

 

    // Reverse number using while loop

    while (num != 0) {

        digit = num % 10;              // extract the last digit

        reversed = reversed * 10 + digit; // form the reversed number

        num /= 10;                     // remove the last digit

    }

 

    // Check palindrome

    if (original == reversed)

        printf("%d is a palindrome number.\n", original);

    else

        printf("%d is not a palindrome number.\n", original);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 1221
1221 is a palindrome number.

OUTPUT 2 :
Enter a positive integer: 456
456 is not a palindrome number.
 
OUTPUT 3 :
Enter a positive integer: -121
Invalid input! Please enter a positive number.

Explanation

  1. Take a positive integer as input.
  2. Store it in original for comparison later.
  3. Use a while loop to reverse the digits:
    • Get last digit using % 10.
    • Append it to reversed.
    • Remove the last digit using /= 10.
  4. After the loop, compare original and reversed.
  5. Print whether it’s a palindrome or not.

 

C Program: Check whether a number is palindrome (loop)

Method 3: Using do..while loop

C

#include <stdio.h>

 

int main() {

    int num, original, reversed = 0, digit;

 

    // Input

    printf("Enter a positive integer: ");

    scanf("%d", &num);

 

    // Validate input

    if (num < 0) {

        printf("Invalid input! Please enter a positive number.\n");

        return 1;

    }

 

    original = num; // store original number

 

    // Reverse number using do...while loop

    do {

        digit = num % 10;               // extract last digit

        reversed = reversed * 10 + digit; // append digit

        num /= 10;                      // remove last digit

    } while (num != 0);

 

    // Check palindrome

    if (original == reversed)

        printf("%d is a palindrome number.\n", original);

    else

        printf("%d is not a palindrome number.\n", original);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 12321
12321 is a palindrome number.

OUTPUT 2 :
Enter a positive integer: 789
789 is not a palindrome number.
 
OUTPUT 3 :
Enter a positive integer: -121
Invalid input! Please enter a positive number.

Explanation

  1. Take a positive integer
  2. Store it in original for later comparison.
  3. Use a ..while loop to reverse the digits:
    • Extract the last digit with % 10.
    • Add it to reversed.
    • Remove the digit using /= 10.
  4. Continue until num becomes 0.
  5. Compare original and reversed to check for palindrome property.