Si un entero positivo tiene (estrictamente) menos factores primos (sin contar las multiplicidades) que su sucesor y su predecesor, lo llamaremos un número de factor pobre .
En otras palabras, y ω ( N ) < ω ( N + 1 ) , donde ω ( N ) es el número de factores primos únicas de N .
Tarea
Puede elegir entre los siguientes formatos de E / S:
- Tome un número entero y genere el número N de factor pobre. En caso de que elija este, N puede ser 0 o 1 indexado.
- Tome un número entero positivo y genere los primeros N números pobres en factores.
- Imprime la secuencia indefinidamente.
Puede tomar entradas y proporcionar salidas a través de cualquier método estándar , en cualquier lenguaje de programación , mientras toma nota de que estas lagunas están prohibidas de forma predeterminada. Este es el código de golf, por lo que gana la presentación más corta que cumpla con las reglas.
No incluiré casos de prueba separados, porque los métodos de competencia son diferentes, pero puede referirse a los primeros 100 términos de esta secuencia, que es OEIS A101934 :
11, 13, 19, 23, 25, 27, 29, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 125, 131, 137, 139, 149, 151, 155, 157, 163, 167, 169, 173, 179, 181, 191, 193, 197, 199, 211, 221, 223, 227, 229, 233, 239, 241, 243, 251, 259, 263, 265, 269, 271, 277, 281, 283, 289, 293, 307, 309, 311, 313, 317, 331, 337, 341, 343, 347, 349, 353, 359, 361, 365, 367, 371, 373, 379, 383, 389, 397, 401, 407, 409, 419, 421, 431, 433, 439, 441, 443
Como ejemplo, ocurre en esta secuencia porque ω ( 25 ) = 1 (5), ω ( 26 ) = 2 (2 y 13) y ω ( 24 ) = 2 (2 y 3), entonces ω ( 25 ) < ω ( 24 ) y ω ( 25 ) < ω ( 26 ) .

n =antes de cada valor?Respuestas:
Brachylog , 21 bytes
Pruébalo en línea!
Imprime infinitamente.
Explicación
fuente
Jalea ,
1312 bytesImprime los primeros números de n factores pobres.
Pruébalo en línea!
Cómo funciona
fuente
Python 2 ,
123119 bytesPruébalo en línea!
fuente
MATL ,
262422 bytesImprime la secuencia indefinidamente.
Pruébalo en línea!
Explicación
fuente
Casco , 22 bytes
Imprime la secuencia indefinidamente, pruébela en línea o vea la primera N !
Alternativamente,
§oΛ>←tpodría usarse en lugar deΠtSM<←.Explicación
fuente
Pyth , 14 bytes
Pruébalo aquí!
Inicialmente fue una sugerencia sobre la respuesta de Dopapp , pero me dijeron que lo publicara por separado.
¿Cómo funciona?
.f! -. ml {Pb} tZh | Programa completo Toma la entrada de STDIN, emite la primera N a STDOUT. .f | (var: Z) Muestra los primeros N valores que satisfacen el predicado. } tZh | Crea la lista [Z - 1, Z, Z + 1]. .m | (var: b) Tome los elementos con un valor de función mínimo. Pb | Factores primos de b. l {| Deduplicar, obtener longitud. El | Para un número de factor pobre, esto se produce envuelto en un singleton. - | Eliminar Z de eso. ! El | Negación lógicafuente
Haskell,
10586 bytesGracias a @Wheat Wizard, @Bruce Forte y @Laikoni por guardar 19 bytes.
[n|n<-[2..],d n<d(n-1),d n<d(n+1)] d x=[1|n<-[1..x],x`rem`n<1,all((>0).rem n)[2..n-1]]fuente
rem==0y/=0se puede relacionar con<1y>0respectivamente.let, definirdcomo función auxiliar está bien (consulte la guía de reglas de golf ). Tambiénsumse puede omitir, la comparación funciona igual en las listas. 86 bytes: ¡ Pruébelo en línea!Octava ,
878379 bytes¡Gracias a @Cows quack por guardar un byte y gracias a @Luis Mendo por guardar
tresseis bytes!Imprime la secuencia indefinidamente.
Pruébalo en línea!
73 bytes con un encabezado
n =antes de cada valor:Pruébalo en línea!
fuente
fpuede convertirsef=@(n)length(unique(factor(n)))en un byte menos.05AB1E ,
1413 bytesProduce el enésimo número de factor pobre (1 indexado)
Pruébalo en línea!
Explicación
fuente
µ, así que supongo que solo voy a señalar mi alternativa:N<N>Ÿpuede sustituir3LN+Í, si eso ayuda.®XŸN+también funciona. O0®X)N+en cuyo casoÀno sería necesario. Lamentablemente, todos terminan en el mismo número de bytes.Pyth,
3025 bytesEste es mi primer Pyth golf real , por lo que cualquier comentario es muy apreciado.
¡Muchas gracias a Xcoder!
Explicación
TIO .
fuente
.f!-.ml{Pb}tZh(imprime el primer n) (.frecupera los primeros n valores que satisfacen una condición[1,2,3,...]y utiliza una variableZ,}tZhgenera el rango entero[Z - 1 ... Z + 1],.mdevuelve la lista de elementos con un valor de función mínimo (conb),l{Pbobtiene el recuento de divisores distintos,-descartaZde la lista,!aplica la negación lógica)hes+1,tes-1, mientras queKes una variable que se asigna sin=. Por ejemplo,K4asignaKa4. Luego puede acceder usandoK.JavaScript (ES6), 94 bytes
Devuelve el enésimo número de factor pobre, 0 indexado.
Pruébalo en línea!
¿Cómo?
Primero definimos la función P () que devuelve el número de factores primos únicos de un entero dado.
El código de ajuste ahora se lee como:
fuente
Japt ,
292726 bytesNo estoy del todo contento con esto, ¡pero al menos es mejor que mi primer intento que fue de más de 40 bytes!
Emite el
Nnúmero th en la secuencia, 1 indexado.Intentalo
Explicación
Entrada implícita de entero
U.Devuelve el primer entero
Xque devuelve verdadero cuando se pasa por la siguiente función.Asigne la matriz
[-1,0,1]aX.Pase cada elemento de esa matriz a través de una función que primero agrega el valor actual de
X.Obtenga la longitud (
Ê) de losâfactores primos únicos ( )kdel resultado.Gire el conjunto resultante uno a la derecha.
Pop (
o) el último elemento deXy compruebe si todos los elementos restantes son mayores que él.Si es así, disminuya
Uy verifique si es igual a 0.fuente
Python 3 , 97 bytes
En teoría, esto imprime la secuencia indefinidamente. En la práctica,
geventualmente excede el límite de recursión.Pruébalo en línea!
fuente
C (gcc) , 126 bytes
Pruébalo en línea!
fuente
Limpio ,
130123117 bytesEquivale a un número infinito de términos de la secuencia. Como se trata de comprensiones anidadas, no puede aprovechar muy bien la reducción de gráficos y, por lo tanto, es bastante lento, incluso para un algoritmo tan malo.
Pruébalo en línea!
fuente
NARS APL, 124 bytes, 62 caracteres
Debería devolver la respuesta hasta 1E4, luego devolver -1 error; supone que 9..10xargumento tiene suficientes números correctos; prueba:
fuente