C program to check if a number is a perfect number or not :
In this tutorial, we will learn how to find if a number is perfect or not by using C programming language. A positive number is called a perfect number if the sum of its proper positive divisors is equal to the number. For example, 6 is a perfect number. Because : Its proper divisors from 1 to 5 are 1, 2, and 3. Sum is 1 + 2 + 3 = 6 which is equal to the number itself. So, it is a perfect number. Let’s take a look at the program :
C program :
#include <stdio.h>
int main()
{
//1
int no;
int sum = 0;
int divisor = 1;
//2
printf("Enter the number : ");
scanf("%d", &no);
//3
for (divisor = 1; divisor < no; divisor++)
{
//4
if (no % divisor == 0)
{
sum += divisor;
}
}
//5
if (sum == no)
{
printf("%d is a perfect number", no);
}
else
{
printf("%d is not a perfect number", no);
}
}
Explanation :
The commented numbers in the above program denote the step number below :
- Create one integer variable no to store the number, one variable sum to store the sum of all perfect divisors and one more variable divisor that indicate the current divisor.
- Ask the user to enter a number. Read it and save it in variable no.
- Run one for-loop. This loop will run from divisor = 1 to divisor = no - 1.
- Check if the current divisor is perfect-divisor or not, i.e. if the divisor divides the number, the remainder should be 0. If it is a perfect-divisor, add its value to sum.
- Finally, check if the sum is equal to the original number or not. If yes, it is a perfect number, else it is not. Print out the message to the user.
Sample Output :
Enter the number : 567
567 is not a perfect number
Enter the number : 6
6 is a perfect number
Enter the number : 8128
8128 is a perfect number
Enter the number : 496
496 is a perfect number
Enter the number : 28
28 is a perfect number