# Find perfect abundant or deficient factors in python

Upasana | May 04, 2019 | 1 min read | 370 views |

Positive integers can be classified as abundant, deficient, or perfect. Abundant integers are those whose proper factors sum to a larger number.

For example, 36 is an abundant number because its proper factors (1, 2, 3, 4, 6, 9, 12, 18) sum to 55 which is greater than 36. Deficient integers are those whose proper factors sum to a smaller number. For example, 27 is a deficient integer because its proper factors (1, 3, 9) sum to 13 which is less than 27.

Perfect integers are those whose proper factors sum to exactly that number. For example, 28 is a perfect integer because its proper factors (1, 2, 4, 7, 14) sum to exactly 28. Given a positive integer value, determine if it is abundant, deficient, or perfect. Also list its perfect factors and the sum of those perfect factors.

``````def type_of_num(num):
factors = []
for i in range(1, num + 1):
if num % i == 0:
if i != num:
factors.append(i)
if sum(factors) == num:
type_num = "Perfect"
elif sum(factors) > num:
type_num = "Abundant"
else:
type_num = "Deficient"
return type_num, factors

print(type_of_num(32))``````
Output
`('Deficient', [1, 2, 4, 8, 16])`

##### Top articles in this category:

###### Recommended books for interview preparation:
Book you may be interested in..
##### ebook PDF - Cracking Java Interviews v3.5 by Munish Chandel
Book you may be interested in..

##### Find more on this topic:

Java & Microservices interview refresher for experienced developers.