Answer to Question #345500 in C++ for Umi

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.

1
Expert's answer
2022-05-30T08:15:25-0400
#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!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS