Propietats dels nombres

Els divisors propis d’un nombre es defineixen com els seus divisors positius excepte ell mateix. Es diu que un nombre és perfecte si és igual a la suma dels seus divisors propis. Igualment es diu que un nombre és deficient si la suma dels seus divisors propis és menor que ell mateix i es diu que és abundant si aquesta suma és superior al mateix nombre.

  1. Dissenya la funció divisors que calculi i retorni la suma dels divisors propis d’un nombre.

    Desa la funció al fitxer propietats.py. La funció ha de passar el següent doctest:

    >>> suma_div_propis(496)
    496
    >>> suma_div_propis(13)
    1
    >>> suma_div_propis(945)
    975
    

    Nota

    Pots descarregar el fitxer amb tests divisors.txt

  2. Dissenya la funció tipus_nombre que donat un enter retorna un string amb el valor “abundant”, “deficient” o “perfecte” segons sigui el seu tipus. Aquesta funció ha de cridar la funció divisors.

    Desa la funció al fitxer propietats.py. La funció ha de passar el següent doctest:

    >>> tipus_nombre(496)
    'perfecte'
    >>> tipus_nombre(13)
    'deficient'
    >>> tipus_nombre(945)
    'abundant'
    

    Nota

    Pots descarregar el fitxer amb tests propietats-1.txt

  3. Es diu que dos nombres n i m són amics si la suma dels divisors propis de n és m i la suma dels divisors propis de m és n. Dissenya la funció booleana son_amics que donats dos enters retorna True si són amics i False en cas contrari. Aquesta funció ha de cridar la funció divisors.

    Desa la funció al fitxer propietats.py. La funció ha de passar el següent doctest:

    >>> son_amics (220, 284)
    True
    >>> son_amics (113, 1546)
    False
    

    Nota

    Pots descarregar el fitxer amb tests propietats-2.txt

Solució

Disposeu de solucions al fitxer propietats.py