w3resource

C Exercises: Check whether a given number is a perfect number or not

C For Loop: Exercise-27 with Solution

Write a c program to check whether a given number is a perfect number or not.

Pictorial Presentation:

Check whether a given number is a perfect number or not

Sample Solution:

C Code:

/*Perfect number is a positive number which sum of all positive divisors excluding that number is equal to that number. For example 6 is perfect number since divisor of 6 are 1, 2 and 3.  Sum of its divisor is 1 + 2+ 3 = 6*/
#include <stdio.h>

void  main()
{
  int n,i,sum;
  int mn,mx;

  printf("Input the  number : ");
  scanf("%d",&n);
    sum = 0;
 printf("The positive divisor  : ");
    for (i=1;i<n;i++)
      {
      if(n%i==0)
         {
         sum=sum+i;
         printf("%d  ",i);
         }
       }
printf("\nThe sum of the divisor is : %d",sum);
    if(sum==n)
      printf("\nSo, the number is perfect.");
    else
      printf("\nSo, the number is not perfect.");
printf("\n");
}

Sample Output:

Input the  number : 56                                                                                        
The positive divisor  : 1  2  4  7  8  14  28                                                                 
The sum of the divisor is : 64                                                                                
So, the number is not perfect.  

Flowchart:

Flowchart : Check whether a given number is perfect number or not

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to find the sum of the series 1 +11 + 111 + 1111 + .. n terms.
Next: Write a c program to find the perfect numbers within a given number of range.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

C Programming: Tips of the Day

Difference between signed / unsigned char :

There's no dedicated "character type" in C language. char is an integer type, same (in that regard) as int, short and other integer types. char just happens to be the smallest integer type. So, just like any other integer type, it can be signed or unsigned.

It is true that (as the name suggests) char is mostly intended to be used to represent characters. But characters in C are represented by their integer "codes", so there's nothing unusual in the fact that an integer type char is used to serve that purpose.

The only general difference between char and other integer types is that plain char is not synonymous with signed char, while with other integer types the signed modifier is optional/implied.

Ref : https://bit.ly/3esiVjT