Avís

Per a resoldre aquests exercicis no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura. Ara bé, podeu dissenyar les funcions demanades bé com a generadors, bé utilitzant les funcions predefinides de Python i les dels mòduls itertools, functools i operator.

1. Iterador de divisors (5 punts)

Es demana que dissenyeu la funció especificada a continuació i la deseu en un fitxer anomenat divisors.py:

divisors.seq_div(n)
Paràmetres:

n (int) – enter estrictament positiu

Retorna:

iterador sobre la seqüència de divisors de n ordenats de forma creixent, incloent tant 1 com el propi n

Per exemple,


>>> it = seq_div(2)
>>> next(it)
1
>>> next(it)
2
>>> next(it, 'final')
'final'
>>> for x in seq_div(12):  # seqüència dels divisors del nombre 12
...   print(x, end=',')
1,2,3,4,6,12,

Disposeu d’un joc de proves més complet al fitxer tests-divisors.txt