Muchas gracias por responder!
De hecho, conocía la fórmula que indica la cantidad de divisores de un numero a partir de los exponentes en sus factores primos, que sería (a1+1)*(a2+1)*…(an+1)…sin embargo, aunque la estaba implementando al problema (en la funcion para calcular cantidad de divisores); y obtenia el menor numero con 400 divisores en algo asi como 1:17 minutos, me inclinaba a pensar que podia implementar la formula de otra manera (ya que los numeros primos son los "bloques" que construyen a los demas numeros, porque no construir al numero a partir de estos en lugar de buscar un numero ya "construido"?). Además mi solucion iterativa no funcionaba para el de 1000 divisores, y sospechaba que era un numero bastante grande (al menos, para la velocidad de la funcion).
Sin embargo, y por mas que estaba seguro de que 2^399 era un numero de 400 divisores; y 2^999 un numero de 1000; como encontrar el menor?
Finalmente me di cuenta de que (y espero estar deduciendo correctamente) es un problema que se resuelve facilmente sin computadora.
Cuando descompuse a 400 en factores primos, me quedo:
400 = 2*2*2*2*5*5
Entonces, cuando descompuse al menor numero con 400 divisores positivos (encontrado iterativamente) en sus factores primos me dio:
6486480 = 2*2*2*2*3*3*3*3*5*7*11*13
Me di cuenta que al utilizar la formula con sus factores primos me daba:
2^4*3^4*5^1*7^1*11^1*13^1 => (4+1)*(4+1)*(1+1)*(1+1)*(1+1)*(1+1) => 5*5*2*2*2*2 = 400
Entonces probe con algunos numeros mas y me di cuenta de que el menor numero con X cantidad de divisores se puede construir descomponiendo a X en factores primos y ordenando esos factores (disminuidos en 1 unidad) como exponentes de numeros primos consecutivos, comenzando desde 2.
Así, el menor numero con 1000 divisores positivos seria:
1000 = 2*2*2*5*5*5;
cantidad_divisores(n) = 1000;
n = 2*2*2*2*3*3*3*3*5*5*5*5*7*11*13 = 810810000
Es esto correcto?
Si es asi, Muchas gracias por su ayuda! :)
saludos