Question #345500

An integer is said to be a perfect number if the sum of its divisors, including 1 (but not the number itself),



is equal to the number. For example, 6 is a perfect number, because 6 = 1 + 2 + 3. Write a function



isPerfect() that determines whether parameter number is a perfect number. Use this function in a



program that determines and prints all the perfect numbers between 1 and 1000. Print the divisors of



each perfect number to confirm that the number is indeed perfect. Challenge the power of your computer



by testing numbers much larger than 1000.

Expert's answer

#include <iostream>
using namespace std; 


bool isPerfect(int n){
    int sum = 0;
    
    for(int i = 1; i<n; i++)
        if(n%i==0)
            sum+=i;
    if(sum==n)  return true;
    
    return false;
}
void displayDivisors(int n){
    cout<<n<<" = "<< 1;
    for(int i = 2; i<n; i++)
        if(n%i==0)
            cout<<"+"<<i<<" ";
    cout<<endl;
}


int main() {
    int n = 1000;
    cout<<"Perfect numbers up to 1000:"<<endl;
    for(int i = 1; i<n; i++)
        if(isPerfect(i))
            displayDivisors(i);
    
    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

LATEST TUTORIALS
APPROVED BY CLIENTS