Perfect Number in C Programming

What is Perfect Number?

A perfect number is the sum of all those numbers which are divisors of that number. For example, 6 is the perfect number. How? Divisors of 6 are 1, 2, 3, and 6. But we don’t have to consider 6 as a divisor here. Therefore, the sum of 1, 2 and 3 is 6. That is why we are saying 6 is the perfect number.

In this post, I am going to write a program to find a perfect number in c. I have written a total of 4 programs for the perfect number using for loop, while loop, do-while loop and function.

Before writing these all programs, let us see the expected output. Because it will help us to understand what we are going to do.

Also Read: Factorial Program in C Programming

Expected Output

perfect number in c output

First, we are going to ask the user to enter any number and then this program will give the result whether that number is a perfect number or not.

Also Read: C Program to Find the Sum of Cubes of Elements in an Array

Perfect Number in C using for loop

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num1,num2=0,i;
    printf("Enter any number\n");
    scanf("%d",&num1);
    for(i=1;i<num1;i++)
    {
        if((num1%i)==0)
        {
            num2=num2+i;
        }
    }
    if(num1==num2)
    {
        printf("%d is the Perfect Number",num1);
    }
    else
    {
        printf("%d is not the Perfect Number",num1);
    }
    return 0;
}

So, this is the program to find the perfect number using for loop. You can get the same output, using a while loop and do-while loop. Let’s see the other program.

Also Read: LCM of Two Numbers in C Programming

Perfect Number in C using while loop

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num1,num2=0,i;
    printf("Enter any number\n");
    scanf("%d",&num1);
    i=1;
    while(i<num1)
    {
        if((num1%i)==0)
        {
            num2=num2+i;
        }
        i++;
    }
    if(num1==num2)
    {
        printf("%d is the Perfect Number",num1);
    }
    else
    {
        printf("%d is not the Perfect Number",num1);
    }
    return 0;
}

Perfect Number in C using do-while loop

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int num1,num2=0,i;
    printf("Enter any number\n");
    scanf("%d",&num1);
    i=1;
    do
    {
        if((num1%i)==0)
        {
            num2=num2+i;
        }
        i++;
    }
    while(i<num1);
    if(num1==num2)
    {
        printf("%d is the Perfect Number",num1);
    }
    else
    {
        printf("%d is not the Perfect Number",num1);
    }
    return 0;
}

Also Read: C Program to Remove White Spaces and Comments from a File

Now, I am going to write the same program using function.

Perfect Number in C using Function

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int perfect(int);
    int num1,num2=0,i;
    printf("Enter any number\n");
    scanf("%d",&num1);
    num2=perfect(num1);    // function call
    if(num1==num2)
    {
        printf("%d is the Perfect Number",num1);
    }
    else
    {
        printf("%d is not the Perfect Number",num1);
    }
    return 0;
}
int perfect(int n)
{
    int i,p=0;
    for(i=1;i<n;i++)
    {
        if((n%i)==0)
        {
            p=p+i;
        }
    }
    return p;
}

I hope, you understood all these programs. If you any doubt or feedback, then please feel free to contact me.

Thanks for reading.

Important Programs

  1. GCD of Two Numbers in C Programming
  2. Switch Case in C Programming
  3. Operators in C with Detailed Explanation
  4. Palindrome in C using Pointers
  5. Strong Number in C Programming
  6. Best 5 Programs on Fibonacci Series in C
  7. C Program to Display Middle Row and Column of Matrix
  8. Remove All Zeros from a number
  9. C Program to Print Multiples of 5 using do while loop
  10. Print Numbers Except Multiples of n

Leave a Comment