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.
2. Divisor més gran (5 punts)¶
Es demana que dissenyeu la funció especificada a continuació i la deseu en un fitxer anomenat maxim_divisor.py:
- maxim_divisor.divmax(it)¶
- Paràmetres:
it (iterador) – iterador que genera una seqüència d’enters més grans estrictament que 1
- Retorna:
iterador que genera la seqüència dels divisors més grans dels elements de it, incloent el 1 com a divisor de tot enter n, però sense incloure el propi n.
Per exemple,
>>> it = iter([10, 12, 3])
>>> it2 = divmax(it)
>>> next(it2)
5
>>> next(it2)
6
>>> next(it2)
1
>>> next(it2, 'final')
'final'
>>> it = iter([100, 12, 3, 14, 5, 6, 23, 45, 55])
>>> it2 = divmax(it)
>>> next(it2)
50
>>> next(it2)
6
>>> next(it2)
1
>>> for x in it2:
... print(x, end=',')
7,1,3,1,15,11,
Disposeu d’un joc de proves més complet al fitxer tests-divmax.txt