Filtrado de Números Primos con Streams
Dificultad: Difícil Java advanced coding
List<Integer> nums = List.of(2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
List<Integer> primos = nums.stream()
.filter(n -> IntStream.range(2, n).noneMatch(i -> n % i == 0))
.collect(Collectors.toList());
System.out.println(primos); 📥 Inputs:
nums = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
Usamos streams con filter() para encontrar números primos. El predicado lambda verifica que ningún número entre 2 y n-1 divida exactamente a n. IntStream.range() genera la secuencia y noneMatch() confirma que no hay divisores.
¿Puedes optimizarlo para números más grandes? 💡 Comenta tu solución usando √n como límite!