Here is a program to find whether the entered number is a perfect or not. A perfect number is a one, whose sum of devisors is equals the number itself.
Logic: Here in the program, user need to enter the number to check if it is perfect. The for loop in the program traces the iteration till the number, while in each of iteration it checks the present number is the divisor of the entered or not. If it is, it adds it to the flag, which holds the sum of all the divisors. Finally, it checks if the sum equals the given number.
The same algorithm is modified slightly, and developed a program to print all the perfect number till the user defined range.
Program to find whether a number is a perfect or not
#include<stdio.h>
#include<math.h>
void main()
{
int i ,n, sum = 0;
clrscr();
printf(“\n\n\t ENTER A NUMBER…: “);
scanf(“%d”, &n);
for(i=1; i<n; i++)
if(n%i == 0)
sum = sum + i;
if(sum == n)
printf(“\n\n\t THE NUMBER %d IS A PERFECT NUMBER”, n);
else
printf(“\n\n\t THE NUMBER %d IS NOT A PERFECT NUMBER”, n);
getch();
}