Write a program that repeatedly reads a positive integer, determines if the integer is deficient, perfect, or abundant, and outputs the number along with its classification.
A positive integer, , is said to be perfect if the sum of its proper divisors equals the number itself. (Proper divisors include but not the number itself.) If this sum is less than , the number is deficient, and if the sum is greater than , the number is abundant.
The input starts with the number of integers that follow. For each of the following integers, your program should output the classification, as given below. You may assume that the input integers are greater than and less than .
Sample Input
3
4
6
12
Sample Output
4 is a deficient number.
6 is a perfect number.
12 is an abundant number.
Comments
Be careful about the grammar. An abundant number should be "an abundant number." not "a abundant number."
Is 1 a perfect number? or What is 1's proper divisor?
According to the definition: "Proper divisors include 1 but not the number itself", first we can say that "1 is 1's proper divisor since Proper divisors include 1". We can also say, on the other hand, that "1 is not 1's proper divisor" since 1 is the number itself.
From the problem statement,
I have a strange comment, kind of related to the question, how many perfect integers are there up until say up until 2,147,483,647? I wrote a program, but in about 15 minutes it only got 4. And those where 6, 28, 496, and 8128. Has anybody else been able to actually get a complete list?
A quick search found a good answer to your question. In case you're too lazy to read the link, I can summarize:
The current limitations are:
https://en.wikipedia.org/wiki/Perfect_number