Number properties ================= The *proper divisors* of an integer number are defined as their positive divisors except for himself. It is said that a number is *perfect* if it is equal to the addition of its proper divisors. It is also said that a number is *deficient* if the addition of its proper divisors is less than itself, and it is said that it is *abundant* if this addition is greater than the number itself. Save all functions into a file named ``properties.py``. #. Write the function :py:func:`divisors` that given an integer number, returns the addition of its proper divisors. Examples: .. literalinclude:: divisors.txt :language: python3 :lines: 3- .. note:: More tests are provided in file :download:`divisors.txt ` #. Write the function :py:func:`number_type` that given an integer number, returns a string with the values ``'abundant'``, ``'deficient'`` or ``'perfect'`` depending on which of these types the given number is. This function must call the previous function :py:func:`divisors`. Examples: .. literalinclude:: properties-1.txt :language: python3 :lines: 3- .. note:: More tests are provided in file :download:`properties-1.txt ` #. Is is said that two integer numbers *n* and *m* are *friends* if the addition of the proper divisors of *n* is *m* and the addition of the proper divisors of *m* is *n*. Write the Boolean function :py:func:`are_friends` that, given two integers, returns ``True`` if they are friends and ``False`` otherwise. This function must call the previous function :py:func:`divisors`. Examples: .. literalinclude:: properties-2.txt :language: python3 :lines: 3- .. note:: More tests are provided in file :download:`properties-2.txt ` .. rubric:: Solution A solution of these functions is provided in file :download:`properties.py `