- C Programming Examples
- C Programming Examples
- C Print Hello World
- C Get 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 a Number
- 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 LCM & HCF
- C Find LCM of n Numbers
- C Find HCF of n Numbers
- C Area & Perimeter of Square
- C Area & Perimeter of Rectangle
- C Area & Circumference of Circle
- C Convert Fahrenheit to Celsius
- C Convert Celsius to Fahrenheit
- C Print ASCII Value
- C Print Fibonacci Series
- C Check Palindrome or Not
- C Check Armstrong or Not
- C Generate Armstrong Numbers
- C Find nCr and nPr
- C Decimal to Binary
- C Decimal to Octal
- C Decimal to Hexadecimal
- C Binary to Decimal
- C Binary to Octal
- C Binary to Hexadecimal
- C Octal to Decimal
- C Octal to Binary
- C Octal to Hexadecimal
- C Hexadecimal to Decimal
- C Hexadecimal to Binary
- C Hexadecimal to Octal
- C Pattern Printing Programs
- C Print Diamond Pattern
- C Print Floyd's Triangle
- C Print Pascal's Triangle
- C Print Smiling face
- C 1D Array Programs
- 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 an Array
- C Insert Element in Array
- C Delete Element from Array
- C Merge Two Arrays
- C Bubble Sort
- C Selection Sort
- C Insertion Sort
- C 2D Array Programs
- C Add Two Matrices
- C Subtract Two Matrices
- C Transpose a Matrix
- C Multiply Two Matrices
- C 3D Array Programs
- C Print String
- C Find Length of String
- C Compare Two String
- C Copy a String
- C Concatenate String
- C Reverse a String
- C Delete Vowels from String
- C Delete Word from String
- C Find Frequency of Character
- C Count Word in String
- C Remove Spaces from String
- C Sort a String
- C Uppercase to Lowercase
- C Lowercase to Uppercase
- C Swap Two Strings
- C Check Anagram or Not
- C Generate Random Numbers
- C Read a File
- C Write Content to File
- C Read & Display File
- C Copy a File
- C Merge Two Files
- C List Files in Directory
- C Delete a File
- C Encrypt & Decrypt a File
- C Print Date
- C Get IP Address
- C Shutdown Computer
- C Check Palindrome String
- C Inches to Centimeters
- C Kilogram to Gram
- C Count Even Odd
- C Count Vowels Consonants
- C Find Profit Loss
- C Sum All Matrix Elements
- C First & Last Digit Sum
- C Largest Element in Matrix
- C Pass Array to Function
- C Address of Variable
- C Array Element at Even
- C Array Element at Odd
- C Print Even Array Elements
- C Print Odd Array Elements
- C Reverse File
- C Print Message with Time
- C Print Number in Words
- C Print Successive Character
- C Sum of their Square
- C Replace Vowel in String
- C Sort Words in Ascending
- C Sort Words in Descending
- C Sort String in Alphabetical
- C Sum of All Digit
- C Product of All Digit
- C Check Perfect Number
- C Smallest of Two Numbers
- C Smallest of Three Numbers
- C Count Character without Space
- C Count All Character in File
- C Calculate Basic, Gross Salary
- C Calculate Discount Purchase
- C Calculate Parcel Charge
- C Calculate Wage of Labor
- C Print Common Elements
- C Remove Extra Spaces
- C Round Number to Integer
- C Sum/Product of Even/Odd
- C Print Series upto n Term
- C Print Row Column Total
- C Print Second Largest/Smallest
- C Print Phone Bill
- C Print Total Digit in Number
- C Find Factors of Number
- C Programming Tutorial
- C Tutorial
- C Programming Library
- C Standard Library
- C Programming Test
- C Programming Test
- Give Online Test
- All Test List

« C Tutorial C Examples »

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.

The question is, *write a program in C that checks whether a given number is a perfect number or not.* The program given below
is its answer. 6 is a perfect number because 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:

#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 divisible 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:

#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:

« C Tutorial C Examples »

© Copyright 2021. All Rights Reserved.