Write a program to
1] Check Whether Number is Perfect or Not ?
2] Print First n Perfect Numbers.
3] Print Perfect Numbers between Range.
In number theory, a perfect number is a positive integer that is equal to the sum of its proper positive divisors, that is, the sum of its positive divisors excluding the number itself.
#include<stdio.h> int Check_for_Perfect(int); enum Num_Status{IS_PERFECT,IS_NOT_PERFECT}; int main() { int num1,op,num2; unsigned int PerfectCount,i; printf("1] Check Whether Number is Perfect or Not\ \n2] Print First n Perfect Numbers\ \n3] Print Perfect Numbers between Range\n\nEnter Option : "); scanf("%d",&op); if(op == 1) { printf("Enter Number to Check = "); scanf("%d",&num1); if(IS_PERFECT == Check_for_Perfect(num1)) printf("%d is a Perfect Number\n",num1); else printf("%d is a Not a Perfect Number\n",num1); } else if(op == 2) { printf("How Many First Perfect Numbers Do You Want ? "); scanf("%d",&num1); PerfectCount = 0; for(i = 0;PerfectCount < num1;i++) { if(IS_PERFECT == Check_for_Perfect(i)) { printf("%d ",i); PerfectCount++; } } } else if(op == 3) { PerfectCount = 0; printf("Enter Number 1 = "); scanf("%d",&num1); printf("Enter Number 2 = "); scanf("%d",&num2); printf("Perfect between %d and %d are \n",num1,num2); for(i = num1;i <= num2;i++) { if(IS_PERFECT == Check_for_Perfect(i)) { printf("%d ",i); PerfectCount++; } } printf("\nTotal Perfect Numbers are = %d\n",PerfectCount); } else printf("Invalid Option...\n"); printf("\n"); return 0; } int Check_for_Perfect(int n) { int i,s = 0; for(i = 1;i < n; i++) { if(n%i == 0) s = s + i; } if(s == n) return IS_PERFECT; else return IS_NOT_PERFECT; }
Output
1] Check Whether Number is Perfect or Not 2] Print First n Perfect Numbers 3] Print Perfect Numbers between Range Enter Option : 1 Enter Number to Check = 24 24 is a Not a Perfect Number
1] Check Whether Number is Perfect or Not 2] Print First n Perfect Numbers 3] Print Perfect Numbers between Range Enter Option : 1 Enter Number to Check = 28 28 is a Perfect Number
1] Check Whether Number is Perfect or Not 2] Print First n Perfect Numbers 3] Print Perfect Numbers between Range Enter Option : 2 How Many First Perfect Numbers Do You Want ? 5 0 6 28 496 8128
1] Check Whether Number is Perfect or Not 2] Print First n Perfect Numbers 3] Print Perfect Numbers between Range Enter Option : 3 Enter Number 1 = 1 Enter Number 2 = 500 Perfect between 1 and 500 are 6 28 496 Total Perfect Numbers are = 3