Find perfect abundant or deficient factors in python

Carvia Tech | May 04, 2019 | 1 min read | 58 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. Python Flask Interview Questions
  3. Top 100 interview questions on Data Science & Machine Learning
  4. Google Data Scientist interview questions with answers
  5. Find extra long factorials in python
  6. Find if credit card number is valid or not
  7. Sequence of Differences in Python


Find more on this topic:
Machine Learning image
Machine Learning

Data science, machine learning, python, R, big data, spark, the Jupyter notebook, and much more

Last updated 1 week ago


Recommended books for interview preparation:

This website uses cookies to ensure you get the best experience on our website. more info