Step by step descriptive logic to check Perfect number.
sum = 0
.num/2
, increment 1 in each iteration. The loop structure should look like for(i=1; i<=num/2; i++)
.Why iterating from 1 to num/2
, why not till num? Because a number does not have any proper positive divisor greater than num/2
.
/**
* C program to check whether a number is Perfect number or not
*/
#include <stdio.h>
int main()
{
int i, num, sum = 0;
/* Input a number from user */
printf("Enter any number to check perfect number: ");
scanf("%d", &num);
/* Calculate sum of all proper divisors */
for(i = 1; i <= num / 2; i++)
{
/* If i is a divisor of num */
if(num%i == 0)
{
sum += i;
}