n vegades n

Avís

Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements d’un iterador.

Dissenyeu la funció generadora següent i deseu-la al mòdul nombres (fitxer nombres.py):

nombres.seq_nn()

Genera un iterador sobre la seqüència (potencialment infinita) dels nombres naturals, repetit cadascun d’ells tantes vegades com el seu valor:

>>> from nombres import seq_nn

>>> it = seq_nn()
>>> next(it)
1
>>> next(it)
2
>>> next(it)
2
>>> for i in range(33):
...    print(next(it), end=',')
3,3,3,4,4,4,4,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,

Com es pot veure, els nombres es generen de forma creixent, essent 1 el primer nombre natural.

Disposeu de jocs de prova en el fitxer test-nombres.txt.

Nota

Disposeu d’una solució de l’exercici al fitxer nombres.py.