Escribe un programa para encontrar el enésimo número súper feo.
Los números súper feos son números positivos cuyos factores primos están en la lista de números primos de tamaño k. Por ejemplo, [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] es la secuencia de los primeros 12 números súper feos dados primos = [2, 7, 13, 19] de talla 4.
Nota: Solución Java Siga agregando valores mínimos a los resultados y actualizando el valor de tiempo para el número primo elegido en cada ciclo.
(1) 1 es un número muy feo para cualquier primo dado.
(2) Los números dados en números primos están en orden ascendente.
(3) 0
public int nthSuperUglyNumber(int n, int[] primes) {
int[] times = new int[primes.length];
int[] result = new int[n];
result[0] = 1; // first is 1
for (int i = 1; i < n; i++) {
int min = Integer.MAX_VALUE;
for (int j = 0; j < primes.length; j++) {
min = Math.min(min, primes[j] * result[times[j]]);
}
result[i] = min;
for (int j = 0; j < times.length; j++) {
if (result[times[j]] * primes[j] == min) {
times[j]++;
}
}
}
return result[n - 1];
}