Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

c program Perfect Numbers A positive integer is said to be a perfect number if i

ID: 3789022 • Letter: C

Question

c program

Perfect Numbers A positive integer is said to be a perfect number if it equals the sum of its positive divisors (excluding the number itself). As an example, 6 is a perfect number because its divisors, 1, 2, and 3 sum up to 6. The first four perfect numbers are 6, 28, 496, 8128. Write a C program that asks the; user to enter a number and checks if the number is perfect. Your program should run interactively until the; user quits. Try to minimize the; pre>gram execution lime; by using the least number of iterations for finding the divisors of the user's input. Record and report the number of iterations executed for checking if a number is perfect. Sample Code Execution: Red text indicates information entered by the user Enter a perfect number:1 Number 1 is not perfect Number of iterations:0 Do you want to continue (y/n)?y Enter a perfect number:6 Number 6 is perfect Number of iterations:3 Do you want to continue (y/n)?y Enter a perfect number:67 Number 67 is not perfect Number of iterations:33 Do you want to continue (y/n)?y Enter a perfect number:496 Number 496 is perfect Number of iterations:248 Do you want to continue (y/n)?n Goodbye

Explanation / Answer

#include<stdio.h>

int checkNumberIsPerfect(int givenNumber);
int getNumber(int enableCall);

int main()
{
int inputNumber = getNumber(0);
checkNumberIsPerfect(inputNumber);
return 0;
}

//-- To get input from user
int getNumber(int enableCall)
{
    int userInput;
    printf("Enter a perfect number: ");
    scanf("%d",&userInput);
    if (enableCall)
    {
       checkNumberIsPerfect(userInput); //-- Call funtion to check number is perfect or not
    }
    else
    {
       return userInput;
    }
}

//-- Check number is perfect
int checkNumberIsPerfect(int givenNumber)
{
    int initNumber = 1, sum = 0, iteration = 0;char options;
    while(initNumber<givenNumber)
    {
        if(givenNumber%initNumber==0)
       {
            sum=sum+initNumber;
           iteration++;
       }
      
        initNumber++;
   }

if(sum==givenNumber)
      printf("Number %d is perfect", initNumber);
else
      printf("Number %d is not a perfect", initNumber);

   printf(" Number of iterations:%d", iteration);
  
   char answer;
   printf(" Do you want to continue(Y/N)?: ");
   scanf(" %c", &answer);
   if (answer == 'Y')
   {
       getNumber(1);
   }
   else
       printf(" Goodbye");
    return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote