PLAY WITH CODING

Home Basic Program If & Else Loops Conversion Pattern logo

Program Based on Loops

Program to print all perfect number in a given range

Input - Output

Input
Enter lower limit : 2
Enter Upper limit : 56

Output
All Perfect number between 2 to 56 are : 6, 28

Algorithm

Step 1: START

Step 2: Declare variable start and end

Step 3: Input range from user and store it into start and end.

Step 4: Now we have to check each number from low limit number to upper limit number one by one if it is found perfect then print it.

Logic

I have make a separated function for iterate the loop and inside that I call another function "It check the number is perfect or not".

Step 6: END

CODE


/* Print all perfect number in a given range */

#include<stdio.h>
      int isPerfect(int num);
      void printPerfect(int start,int end);
int main()
{
      int start,end;
      printf(" Enter a lower limit : ");
      scanf("%d",&start);
      printf(" Enter an upper limit : ");
      scanf("%d",&end);
      printf(" All perfect numbers between %d to %d are : ",start,end);
      printPerfect(start,end);
    return 0;
}

int isPerfect(int num)
{
      int i,sum=0;
      for(int i=1;i<num;i++)
   {
       if(num % i == 0)
     {
         sum += i;
     }
   }
      if(sum == num)
       return 1;
      else
       return 0;
}

void printPerfect(int start,int end)
{
      while(start <= end)
   {
       if(isPerfect(start))
     {
         printf(" %d, ",start);
     }
     start++;
   }
}


/* Print all perfect number in a given range*/

#include<iostream>
using namespace std;
      int isPerfect(int num);
      void printPerfect(int start,int end);
int main()
{
      int start,end;
      cout<<" Enter a lower limit : ";
      cin>>start;
      cout<<" Enter an upper limit : ";
      cin>>end;
      cout<<" All perfect numbers between "<<start<<" to "<<end<<" are : ";
      printPerfect(start,end);
    return 0;
}

int isPerfect(int num)
{
      int i,sum=0;
      for(int i=1;i<num;i++)
   {
       if(num % i == 0)
     {
         sum += i;
     }
   }
      if(sum == num)
       return 1;
      else
       return 0;
}

void printPerfect(int start,int end)
{
      while(start <= end)
   {
       if(isPerfect(start))
     {
         cout<<" "<<start<<", ";
     }
     start++;
   }
}

OutPut

Enter lower limit : 2
Enter Upper limit : 56

All Perfect number between 2 to 56 are : 6, 28