Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


numero de divisors, Ejercicios de Informática

Ejercicio de jutge resuelto

Tipo: Ejercicios

2019/2020

Subido el 27/10/2021

mapuzu
mapuzu 🇪🇸

5

(1)

23 documentos

1 / 1

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
def divisores(k):
'''
k es un entero mayor que cero
retorna una lista con los divisores de k
>>> sorted(divisores(12))
[1, 2, 3, 4, 6, 12]
'''
lista_div = [1]
if (k != 1): lista_div.append(k)
i = 2
while (i*i < k) :
if k%i==0:
lista_div.append(i)
lista_div.append(k//i)
i += 1
if k == i*i: lista_div.append(i)
return lista_div
def pos_muchos_divisores(n, f):
'''
>>> pos_muchos_divisores(6, [6, 3, 4, 3, 14, 12 ,15, 14])
5
>>> pos_muchos_divisores(1, [13, 15, 13, 15, 13 ,15])
-1
>>> pos_muchos_divisores(2, [3, 2, 1])
0
>>> pos_muchos_divisores(1, [3, 2, 1])
2
>>> pos_muchos_divisores(0, [1])
-1
'''
for i in range(len(f)):
ndiv = len(divisores(f[i]))
if ndiv == n:
return i
return -1
if __name__ == '__main__':
import doctest
print(doctest.testmod())

Vista previa parcial del texto

¡Descarga numero de divisors y más Ejercicios en PDF de Informática solo en Docsity!

def divisores(k): ''' k es un entero mayor que cero retorna una lista con los divisores de k

sorted(divisores(12)) [1, 2, 3, 4, 6, 12] ''' lista_div = [1] if (k != 1): lista_div.append(k) i = 2 while (ii < k) : if k%i==0: lista_div.append(i) lista_div.append(k//i) i += 1 if k == ii: lista_div.append(i) return lista_div def pos_muchos_divisores(n, f): ''' pos_muchos_divisores(6, [6, 3, 4, 3, 14, 12 ,15, 14]) 5 pos_muchos_divisores(1, [13, 15, 13, 15, 13 ,15])

pos_muchos_divisores(2, [3, 2, 1]) 0 pos_muchos_divisores(1, [3, 2, 1]) 2 pos_muchos_divisores(0, [1])

''' for i in range(len(f)): ndiv = len(divisores(f[i])) if ndiv == n: return i return - if name == 'main': import doctest print(doctest.testmod())