Input
Enter lower limit : 2
Enter Upper limit : 56
Output
All Perfect number between 2 to 56 are : 6, 28
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
/* 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++;
}
}
Enter lower limit : 2
Enter Upper limit : 56
All Perfect number between 2 to 56 are : 6, 28
advertisment