Answer to Question #346090 in C++ for Umi

Question #346090

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:17:06-0400
#include <iostream>
int main()
{
	long* divisors; int i; int j; int n = 0; long sum = 0;
	divisors = new long[10000];
	for (i = 2; i < 1000; i++)
	{
		n = 0;
		*(divisors + n) = 1;
		sum = *(divisors + n);
		n++;
		for (j = 2; j < 1000; j++)
			if (i % j == 0)
			{
				*(divisors + n) = j;
				sum = sum + j;
				n++;
			}
		if (i * 2 == sum)
		{
			std::cout << "perfect number: " << i << "\n";
			std::cout << "divisors: ";
			for (j = 0; j < n - 1; j++)
				std::cout << *(divisors + j) << " ";
			std::cout << "\n";
		}
	}
}

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
APPROVED BY CLIENTS