- C Programming Examples
- C Programming Examples
- C Print Hello World
- C Take Input from User
- C Print Integer
- C Add two Numbers
- C Check Even or Odd
- C Check Prime or Not
- C Check Alphabet or Not
- C Check Vowel or Not
- C Check Leap Year or Not
- C Check Reverse equal Original
- C Add Subtract Multiply & Divide
- C Make Calculator
- C Add Digits of Number
- C Calculate Average & Percentage
- C Calculate Arithmetic Mean
- C Calculate Student Grade
- C Print Table of Number
- C Print Prime Numbers
- C Add n Numbers
- C Interchange Numbers
- C Reverse Numbers
- C Swap two Numbers
- C Count Positive Negative & Zero
- C Find Largest of two Numbers
- C Find Largest of three Numbers
- C Find Factorial of Number
- C Find HCF & LCM
- C Calculate Area & Perimeter
- C Calculate Area & Circumference
- C Convert Fahrenheit to Centigrade
- C Convert Centigrade to Fahrenheit
- C Print ASCII Values
- C Print Fibonacci Series
- C Check Palindrome or Not
- C Check Armstrong or Not
- C Generate Armstrong Numbers
- C Find ncR nPr
- C Convert Decimal to Binary
- C Convert Decimal to Octal
- C Convert Decimal to Hexadecimal
- C Convert Binary to Decimal
- C Convert Binary to Octal
- C Convert Binary to Hexadecimal
- C Convert Octal to Decimal
- C Convert Octal to Binary
- C Convert Octal to Hexadecimal
- C Convert Hexadecimal to Decimal
- C Convert Hexadecimal to Binary
- C Convert Hexadecimal to Octal
- C Pattern Printing Programs
- C Print Diamond Pattern
- C Print Floyd Triangle
- C Print Pascal Triangle
- C Print smiling face
- C One Dimensional Array Program
- C Linear Search
- C Binary Search
- C Add Two Numbers using Pointer
- C Find Largest Element in Array
- C Find Smallest Element in Array
- C Reverse Array
- C Insert Element in Array
- C Delete Element from Array
- C Merge two Array
- C Bubble Sort
- C Selection Sort
- C Insertion Sort
- C Two Dimensional Array Program
- C Add two Matrices
- C Subtract Matrices
- C Transpose Matrix
- C Multiply Matrices
- C Three Dimension Array Program
- C Print String
- C Find Length of String
- C Compare two String
- C Copy String
- C Concatenate String
- C Reverse String
- C Delete Vowels from String
- C Delete Words from Sentence
- C Find Frequency of Character
- C Count Word in Sentence
- C Remove Spaces from String
- C Sort a String
- C Convert Uppercase to Lowercase
- C Convert Lowercase to Uppercase
- C Swap two Strings
- C Check Anagram or Not
- C Generate Random Numbers
- C Read File
- C Write to File
- C Read & Display File
- C Copy File
- C Merge two File
- C List Files in Directory
- C Delete File
- C Encrypt and Decrypt Files
- C Print Date
- C Get IP Address
- C Shutdown Computer
- C New Programs
- C Compute Charge to Send Parcel
- C Compute Telephone Bills
- C Find Discounted Purchase Amount
- C Find Wage of Labour
- C Round Off Floating-point Number
- C Find Bonus & Gross Salary
- C Sum/Product of Even/Odd Digit
- C Print Series upto N Term
- C Find Sum of All Digit
- C Find Product of All Digit
- C Find Total Number of Digit
- C Print all Factors of Number
- C Check Perfect Number or Not
- C Find Second Largest & Smallest
- C Print Sum of Row & Column
- C Common Element in Two Array
- C Count Space Tab Newline in file
- C Count with/without Space
- C Smallest of Three Numbers
- C Smallest of Two Numbers
- C Remove extra Spaces from String
- C Programming Tutorial
- C Tutorial
- C Programming Library
- C Standard Library
- C Programming Test
- C Programming Test
- Give Online Test
- Register Now
- Login
- All Test List

In this tutorial, we will learn about how to create a program in C that will ask from user to enter any number (at run-time) as input to check whether the given number is a perfect number or not. A perfect number is a number in which, factor's sum is equals to the Number itself. Here is the program:

// Write a program in C to accept a Number from user // and check whether it is a Perfect Number or Not. // For example, 6 (3+2+1). Here 1, 2, and 3 are the three // factors of 6 and after summing it up, you will get // the same number itself as in case of 6 // -----------codescracker.com----------- #include<stdio.h> #include<conio.h> int main() { int num, sum=0, i; printf("Enter any number: "); scanf("%d", &num); for(i=1; i<num; i++) { if(num%i == 0) sum = sum + i; } if(num == sum) printf("\nIt's a Perfect Number."); else printf("\nIt's not a Perfect Number."); getch(); return 0; }

The above program was build and run under **Code::Blocks** IDE, here is the output. This is first snapshot of the sample run:

Supply any number say **6** and press `ENTER`

key to see that the given number is a perfect number or not. This is the
second snapshot of the sample run:

Let's check for another number say **24**. Here is the sample run in case of 24 (as input):

As the factor of 24 is 1, 2, 3, 4, 6, 8, 12 and if you will find the sum of all these factors, that is **1+2+3+4+6+8+12**
is equal to **36** which is not equal to the number itself (24 here). Therefore, according to the definition of perfect number given
here, 24 is not a perfect number.

Below are the list of some main steps used in above program:

- Receive any number as input say 6
- Create a
**for**loop starts from 1 to one less than the number itself (5 if input is 6) - Check whether the number is divisibly by any of the number from 1 to one less than the number that is 5
- If it is, then add this number to the
**sum**and continue to check for the next number - At first run,
**i**holds 1 and therefore**if**statement evaluates like,**num%i == 0**or**6%1 == 0**, or**0 == 0**. As while dividing 6 by 1, we will not get any remainder, therefore this evaluates to be true and inside the**if**block the statement say**sum = sum + i**or**sum = 0 + 1**or**sum = 1**will run - Never forgot to initialize the
**sum**variable with 0 at start of the program - At second run,
**i**holds 2 and again 6 will be divisible by 2 without leaving any remainder, therefore again inside the**if**block, the statement**sum = sum + i**or**sum = 1 + 2**or**sum = 3**will run. Or 3 will be initialized to the**sum**variable - In this way, at third, fourth and fifth run of the
**for**loop we have to process the same steps - At last run,
**sum**will have the value 6 which is equal to the number itself, therefore here we have concluded that all the factor's sum of the given number that is 6, is equal to the number itself that is 6 - Therefore, it is a perfect number
- To print it out, check whether the original number is equal to the factor's sum of the given number or not
- If it is, then print it out as a perfect number
- Otherwise, print it out as not a perfect number

Here is another program on perfect number. This program will ask from the user to enter any two number as starting and ending number or point to check and print all the perfect number exists in between the given two number:

// Write a program in C to print all Perfect number // between any two number say n1 and n2 // -----------codescracker.com----------- #include<stdio.h> #include<conio.h> int main() { int n1, n2, i, j, sum, temp; printf("Enter the value of n1 (starting point): "); scanf("%d", &n1); printf("Enter the value of n2 (ending point): "); scanf("%d", &n2); printf("\nPerfect numbers between %d to %d are:\n", n1, n2); for(i=n1; i<=n2; i++) { temp = i; sum = 0; for(j=1; j<i; j++) { if(i%j==0) { sum = sum + j; } } if(temp==sum) { printf("%d\n", sum); } } getch(); return 0; }

Here is the first snapshot of the sample run:

Supply any two number say **1** as starting and **1000** as ending to see all the perfect number exists between these
two number. Here is the second snapshot of the sample run: