Tutorial Gateway

  • C
  • C#
  • Python
  • SQL
  • Java
  • JS
  • BI Tools
    • Informatica
    • Talend
    • Tableau
    • Power BI
    • SSIS
    • SSRS
    • SSAS
    • MDX
    • R Tutorial
    • Alteryx
    • QlikView
  • More
    • C Programs
    • C++ Programs
    • Go Programs
    • Python Programs
    • Java Programs
  • MySQL

C Program to find Perfect Number

How to write a C Program to find Perfect Number Using For Loop and While loop?. We also find the Perfect Numbers between 1 and 100 with examples. Any number can be the perfect number in C if the sum of its positive divisors excluding the number itself is equal to that number.

For example, 6 is a perfect number in C because 6 is divisible by 1, 2, 3, and 6. So, the sum of these values is 1+2+3 = 6 (Remember, we have to exclude the number itself. That’s why we haven’t added 6 here). Some of the perfect numbers are 6, 28, 496, 8128, and 33550336, etc.

C Program to find Perfect Number using For Loop

This perfect number in C program allows the user to enter any number. Using this number, it will calculate whether the number is a Perfect number or not using the For Loop.

/* C Program to find Perfect Number using For Loop */

# include <stdio.h>   

int main()   
{   
 int i, Number, Sum = 0 ;   
  
 printf("\n Please Enter any number \n") ;   
 scanf("%d", &Number) ;   
 
 for(i = 1 ; i < Number ; i++)   
  {   
   if(Number % i == 0)   
     Sum = Sum + i ;   
  }    

 if (Sum == Number)   
    printf("\n %d is a Perfect Number", Number) ;   
 else   
    printf("\n%d is not the Perfect Number", Number) ;   

return 0 ;   
}
C Program to find Perfect Number using For Loop

In this C perfect number program, we declared 3 integer variables i, Number, and Sum = 0.

Below printf statement will ask the user to enter any positive integer value

printf("\n Please Enter any number \n") ;

The below C Programming scanf statement will assign the user entered a value to the Number variable

scanf("%d", &Number) ;

In the next C program line, we have for loop. The condition  (i < Number) inside the for loop will make sure not exceed i value.

 for(i = 1 ; i < Number ; i++)   
  {   
   if(Number % i == 0)   
     Sum = Sum + i ;   
  }

If Condition inside the For Loop will check whether the Number is Perfectly divisible by i value or not. Please refer If Statement in C article to understand the If statement

  1. If the number is perfectly divisible by i, then i will be added to the Sum
  2. If the number is not divisible by i, the i value will increment by 1 and check for next value

From the above Screenshot of this perfect number in c, User Entered value is: Number = 6

First Iteration
For the first Iteration, Number = 6, Sum = 0 and i = 1
If (Number % i == 0)
6 % 1 == 0
If statement succeeded here So,
Sum = Sum + i
Sum = 0 +1 = 1

Second Iteration

From the first Iteration, the values of both Sum and i has changed as Sum = 1 and i = 2

If (Number % i == 0)
6 % 2 == 0 – True
Sum = Sum + i
Sum = 1 + 2 = 3

Third Iteration

From the second Iteration of c program to find perfect number, the values of both Sum and i has changed as Sum = 3 and i = 3

If (6 % 3 == 0) – True
Sum = Sum + i
Sum = 3 + 3 = 6

For the fourth and fifth iterations of the perfect number in c program, the condition inside the if condition will fail
6 % 4 == 0 (FALSE)
6 % 5 == 0 (FALSE)

For the sixth iteration, the value of i becomes 6, which means the condition inside the for loop will fail (6 < 6). So, the compiler will terminate the for loop.

In the next line, we have an If condition to check whether the value inside the Sum variable is exactly equal to the given Number or Not.

If the condition (Sum == Number) is TRUE, the below printf statement will execute

printf("\n %d is a Perfect Number", Number) ;

If the condition (Sum == Number) is FALSE, the below printf statement will execute

printf("\n %d is not the Perfect Number", Number) ;

For this example (Sum == Number) is True. So, the given Number is Perfect Number in C programming

C Program to find Perfect Number using While Loop

This perfect number in c program allows the user to enter any number. Using this number, it will calculate whether the user input is a Perfect number or not using a While loop in C.

/* C Program to find Perfect Number using While Loop */

# include <stdio.h>   

int main()   
{   
  int i = 1, Number, Sum = 0 ;   

  printf("\n Please Enter any number \n") ;   
  scanf("%d", &Number) ;   

  while( i < Number )   
   {   
     if(Number % i == 0)   
        Sum = Sum + i ;   
     i++;
   }   

  if (Sum == Number)   
    printf("\n %d is a Perfect Number", Number) ;   
  else   
    printf("\n%d is not the Perfect Number", Number) ;   

 return 0 ;   
}

We haven’t done anything special in this example. We just replaced the For loop in the first program for the perfect number with While Loop. If you find it difficult to understand the While loop functionality, then please refer to While Loop in C article.

C Program to find Perfect Number or Not using While Loop

C Program to Find Perfect Number between 1 to 1000

This program for a perfect number allows the user to enter a minimum and maximum values. This C program finds a Perfect Number between the Minimum and Maximum values.

/* C Program to Find Perfect Number between 1 to 1000 */

#include <stdio.h>

int main()
{
  int Number, Sum, i, Minimum, Maximum;

  printf("\n Please Enter the Minimum & Maximum Values\n");
  scanf("%d %d", &Minimum, &Maximum);

  printf("Perfect Numbers Between %d and %d are:\n", Minimum, Maximum);
  for(Number=Minimum; Number<=Maximum; Number++)
   {
     for(i = 1, Sum =0 ; i < Number ; i++)   
      {   
        if(Number % i == 0)   
          Sum = Sum + i ;   
      }   

     if (Sum == Number)   
       printf(" %d  ", Number) ;   
   }

 return 0;
}
C Program to Find Perfect Number between 1 to 1000
for (Number=Minimum; Number<=Maximum; Number++)

The For Loop in this perfect number example helps the compiler to iterate between Minimum and Maximum Variables. The iteration starts at the Minimum, and then it will not exceed the Maximum variable.

Inside the for loop, we are checking whether that number is a perfect number or not. We already explained the for loop iteration in the first example.

Filed Under: C Programs

  • C Hello World
  • C Add Two numbers
  • C Armstrong Number Program
  • C Convert Celsius to Fahrenheit
  • C Convert Decimal to Binary
  • C Convert Decimal to Octal
  • C Convert CM to Meter and KM
  • C Convert KM to M, CM & MM
  • C Convert Fahrenheit to Celsius
  • C Compound Interest Program
  • C Count Digits in a Number
  • C Count Notes in an Amount
  • C Cube of a Number
  • C Electricity Bill Program
  • C Factors of a Number Program
  • C Factorial of a Number Program
  • C GCD of Two Numbers
  • C Generic Root of a Number
  • C Gross Salary of an Employee
  • C Largest of Two Numbers
  • C Largest of Three numbers
  • C Last Digit Of a Number
  • C LCM of Two Numbers
  • C Leap Year program
  • C Multiplication Table program
  • C Natural Numbers from 1 to N
  • C Natural Numbers in reverse
  • C NCR Factorial of a Number
  • C Number is Divisible by 5 and 11
  • C Palindrome Program
  • C Palindrome String program
  • C Perfect Number Program
  • C Profit or Loss Program
  • C Print 1 to 100
  • C Print Prime Numbers 1 to 100
  • C Prime Number program
  • C Prime Factors of a Number
  • C Prime, Armstrong or Perfect
  • C Positive or Negative program
  • C Print Odd Numbers 1 to N
  • C Print Even Numbers 1 to N
  • C Print Integer, Char & Float
  • C Power of a Number program
  • C Product of Digits in a Number
  • C Roots of a Quadratic Equation
  • C Reverse a Number
  • C Simple Calculator Program
  • C Simple Interest
  • C Square of a Number
  • C Square Root of a Number
  • C Standard Deviation program
  • C Strong Number Program
  • C Student Grade program
  • C Sum of Odd Numbers program
  • C Sum of Even Nums program
  • C Sum of Even and Odd Nums
  • C Swap First & Last digit of Num
  • C Sum of First & Last digit Num
  • C Sum of Digits of a Number
  • C Sum of N Numbers Program
  • C Sum and Average of n Number
  • C Swap 2 Numbers
  • C Total, Avg & % of Five Subjects
  • C Quick Sort
  • C Selection Sort
  • C Insertion Sort
  • C Bubble Sort
  • C Fibonacci Series Program
  • C Nth Fibonacci number
  • C Sum of AP Series
  • C Sum of GP Series
  • C Sum of series 1³+2³+3³+….+n³
  • C Sum of series 1²+2²+3²+….+n²
  • C ASCII value of String chars
  • C Print Characters in a String
  • C Compare Two Strings
  • C Concatenate Two Strings
  • C Copy String
  • C String length program
  • C Convert String to Lowercase
  • C First Occurrence of string char
  • C First Occur of String Word
  • C Count Occur of string Char
  • C Count Alphabets, Digits & Special Chars
  • C Count Vowels & Consonants
  • C string remove all Occ of char
  • C remove 1st Occ of char in string
  • C remove last Occ char in string
  • C replace All Occ of char in string
  • C Replace last Occ of String Char
  • C Replace 1st occ char in string
  • C Reverse words Order in string
  • C Reverse a String
  • C Toggle Case of all char in string
  • C Array Arithmetic Operations
  • C Matrix Arithmetic Operations
  • C Count Frequency of array item
  • C Count Duplicate Array items
  • C Count +ve & -Ve Array items
  • C Count Even & Odd Array items
  • C Copy an Array to another
  • C Delete Duplicate Array items
  • C Delete an Element in an Array
  • C insert an Element in an Array
  • C 2nd largest Number in an Array
  • C Find Largest Array Number
  • C Find Smallest Array Number
  • C Largest & Smallest Array item
  • C Merge Two Arrays
  • C Print Unique Array Elements
  • C Print Arrayy Elements
  • C Print Negative Array Numbers
  • C Print Positive Array Numbers
  • C Put +ve & -Ve in 2 Arrays
  • C Put Even & Odd in 2 Arrays
  • C Program to Reverse an Array
  • C Search an Element in an Array
  • C Sum of array even, odd nums
  • C Sort Array in Ascending Order
  • C Sort Array in Descending
  • C Swap 2 Arrays without Temp
  • C Sum of all Array Elements
  • C Sum of each Matrix column
  • C sum of each row in a Matrix
  • C Sum of Matrix row & column
  • C Add Two Matrices
  • C Sparse Matrix
  • C Symmetric Matrix
  • C Identity Matrix
  • C Interchange Matrix Diagonals
  • C Check two Matrices Equal
  • C Lower Triangle of a Matrix
  • C Upper Triangle of a Matrix
  • C Sum of Lower Triangle Matrix
  • C Sum of Upper Triangle Matrix
  • C Subtract Two Matrices
  • C Transpose of a Matrix program

Copyright © 2021· All Rights Reserved by Suresh.
About | Contact | Privacy Policy