Solució del lliurament 1 G50 d’Ampliació d’Informàtica

Organització:

Secció ETSEIB, Departament de Ciències de la Computació, UPC

Data:

29 de setembre de 2025

Durada:

30 minuts

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Jocs de proves

Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=...

>>> from itertools import *

Tests exercici 1

>>> from divisors import seq_div
>>> for x in seq_div(5):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,5,
>>> for x in seq_div(16):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,2,4,8,16,
>>> for x in seq_div(53):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,53,
>>> for x in seq_div(200):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,2,4,5,8,10,20,25,40,50,100,200,
>>> for x in seq_div(2090):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,2,5,10,11,19,22,38,55,95,110,190,209,418,1045,2090,
>>> for x in seq_div(480):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,2,3,4,5,6,8,10,12,15,16,20,24,30,32,40,48,60,80,96,120,160,240,480,
>>> for x in seq_div(4096):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,2,4,8,16,32,64,128,256,512,1024,2048,4096,
>>> for x in seq_div(4097):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,17,241,4097,
>>> for x in seq_div(9999):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,3,9,11,33,99,101,303,909,1111,3333,9999,
>>> for x in seq_div(12345679):  # doctesttag: +TAG=1_seq_div
...   print(x, end=',')
1,37,333667,12345679,

Tests exercici 2

>>> from funciodiv import funcio_divisor
>>> it = funcio_divisor()
>>> for i in range(10):  # doctesttag: +TAG=2_funcio_divisor
...    print(next(it), end=',')
1,2,2,3,2,4,2,4,3,4,
>>> for i in range(20):  # doctesttag: +TAG=2_funcio_divisor
...    print(next(it), end=',')
2,6,2,4,4,5,2,6,2,6,4,4,2,8,3,4,4,6,2,8,
>>> for e in islice(funcio_divisor(), 100, 120):# doctesttag: +TAG=2_funcio_divisor
...    print(e, end=',')
2,8,2,8,8,4,2,12,2,8,4,10,2,8,4,6,6,4,4,16,
>>> for e in islice(funcio_divisor(), 1000, 1010):# doctesttag: +TAG=2_funcio_divisor
...    print(e, end=',')
8,8,4,6,8,4,4,30,2,8,
>>> for e in islice(funcio_divisor(), 5400, 5410):# doctesttag: +TAG=2_funcio_divisor
...    print(e, end=',')
4,8,4,12,8,16,2,18,6,8,