Diseñad la función pos_muchos_divisores(n, listanum) que, dado un valor entero n no negativo y una lista listanum de números enteros mayores que cero devuelva la posición del primer valor en listanum que tenga exactamente n divisores. Si tal valor no existe, tiene que devolver -1.
Es obligatorio utilizar la función divisores(k) proporcionada a continuación para conocer la cantidad de divisores de un número.
def divisores(k): ''' k es un entero mayor que cero >>> 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
>>> 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