Divisors d’un nombre enter

  1. Utilitzant la recursivitat, dissenyeu la funció següent i deseu-la en el fitxer divisors.py (mòdul divisors):

    divisors.descomposa(num)

    Retorna una llista ordenada que contingui la descomposició en factors primers d’un nombre enter donat. Per exemple:

    >>> descomposa (36)
    [2, 2, 3, 3]
    >>> descomposa (125)
    [5, 5, 5]
    >>> descomposa (144)
    [2, 2, 2, 2, 3, 3]
    

    Nota

    Disposeu de jocs de prova al fitxer descomposa.txt.

  2. Utilitzant la recursivitat, dissenyeu la funció modificadora següent i deseu-la en el fitxer divisors.py (mòdul divisors):

    divisors.descomposa_m(num, l)

    A partir d’un nombre enter donat, num, i d’una llista inicialment buida, la funció modifica la llista de forma que contingui la descomposició en factors primers de num. Per exemple:

    >>> l = []
    >>> descomposa_m (36, l)
    >>> l
    [2, 2, 3, 3]
    >>> l = []
    >>> descomposa_m (125, l)
    >>> l
    [5, 5, 5]
    >>> l = []
    >>> descomposa_m (144, l)
    >>> l
    [2, 2, 2, 2, 3, 3]
    

    Nota

    Disposeu de jocs de prova al fitxer descomposa_m.txt.

  3. Utilitzant la recursivitat, dissenyeu la funció següent i deseu-la en el fitxer divisors.py (mòdul divisors):

    divisors.divisors(num)

    Retorna una llista ordenada amb els factors primers d’un nombre enter, però en la qual no hi hagi factors repetits. Per exemple:

    >>> divisors (36)
    [2, 3]
    >>> divisors (125)
    [5]
    >>> divisors (144)
    [2, 3]
    

    Nota

    Disposeu de jocs de prova al fitxer divisors.txt.

Solució

Disposeu de solucions al fitxer divisors.py.