C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Loop Programs in C

Check whether a number is Perfect Number (loop)

Introduction

A Perfect number is a positive integer that is equal to the sum of its proper divisors (excluding itself).

Examples:

  • 6 → 1 + 2 + 3 = 6 (Perfect number)
  • 28 → 1 + 2 + 4 + 7 + 14 = 28 (Perfect number)
  • 12 → 1 + 2 + 3 + 4 + 6 = 16 (Not perfect)

We’ll use a for, while and do..while loop to find and sum all divisors of the number.

 

C Program: Check whether a number is Perfect Number (loop)

Method 1: Using for loop

C

#include <stdio.h>

 

int main() {

    int num, sum = 0;

 

    // 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;

    }

 

    // Find divisors and calculate their sum using for loop

    for (int i = 1; i <= num / 2; i++) {

        if (num % i == 0)

            sum += i;

    }

 

    // Check perfect number condition

    if (sum == num)

        printf("%d is a Perfect number.\n", num);

    else

        printf("%d is not a Perfect number.\n", num);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 6
6 is a Perfect number.

OUTPUT 2 :
Enter a positive integer: 28
28 is a Perfect number.

OUTPUT 3 :
Enter a positive integer: 15
15 is not a Perfect number.

 

Explanation

  1. The user enters a positive integer.
  2. The program checks all numbers from 1 to num / 2.
  3. If a number divides num evenly, it is added to sum.
  4. After the loop, if sum == num, then the number is Perfect.

 

C Program: Check whether a number is Perfect Number (loop)

Method 2: Using while loop

C

#include <stdio.h>

 

int main() {

    int num, i = 1, sum = 0;

 

    // 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;

    }

 

    // Find divisors and sum them using while loop

    while (i <= num / 2) {

        if (num % i == 0)

            sum += i;

        i++;

    }

 

    // Check perfect number condition

    if (sum == num)

        printf("%d is a Perfect number.\n", num);

    else

        printf("%d is not a Perfect number.\n", num);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 6
6 is a Perfect number.

OUTPUT 2 :
Enter a positive integer: 28
28 is a Perfect number. 

OUTPUT 3 :
Enter a positive integer: 12
12 is not a Perfect number.

OUTPUT 4 :
Enter a positive integer: -5
Invalid input! Please enter a positive number.

Explanation

Explanation

  1. Input a positive integer.
  2. Initialize sum = 0.
  3. Use a while loop to check every number from 1 to num/2.
    • If i divides num, add it to sum.
  4. After the loop, if sum == num, the number is perfect.

 

C Program: Check whether a number is Perfect Number (loop)

Method 3: Using do..while loop

C

#include <stdio.h>

 

int main() {

    int num, i = 1, sum = 0;

 

    // 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;

    }

 

    // Find divisors and calculate sum using do...while loop

    do {

        if (num % i == 0)

            sum += i;

        i++;

    } while (i <= num / 2);

 

    // Check perfect number condition

    if (sum == num)

        printf("%d is a Perfect number.\n", num);

    else

        printf("%d is not a Perfect number.\n", num);

 

    return 0;

}

Output

 
OUTPUT 1 :
Enter a positive integer: 6
6 is a Perfect number.

OUTPUT 2 :
Enter a positive integer: 15
15 is not a Perfect number.

OUTPUT 3 :
Enter a positive integer: 28
28 is a Perfect number.
 

Explanation

  1. The user enters a positive integer.
  2. Variable i starts from 1.
  3. Inside the do..while loop, each value of i is tested — if it divides num evenly, it’s added to sum.
  4. Loop continues until i <= num / 2.
  5. After the loop, if sum == num, the number is a Perfect number.