Find perfect abundant or deficient factors in python

Upasana | May 04, 2019 | 1 min read | 370 views | Python Coding Problems


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:
  1. Python coding challenges for interviews
  2. Find extra long factorials in python
  3. Find if credit card number is valid or not
  4. Connect to Postgresql with Python 3.x and get Pandas Dataframe
  5. Connect to MySQL with Python 3.x and get Pandas Dataframe
  6. Connect to Cassandra with Python 3.x and get Pandas Dataframe
  7. Flask Interview Questions

Recommended books for interview preparation:

Find more on this topic: