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Λ>←t
podrí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?
fuente
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
==0
y/=0
se puede relacionar con<1
y>0
respectivamente.let
, definird
como función auxiliar está bien (consulte la guía de reglas de golf ). Tambiénsum
se 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
f
puede 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) (.f
recupera los primeros n valores que satisfacen una condición[1,2,3,...]
y utiliza una variableZ
,}tZh
genera el rango entero[Z - 1 ... Z + 1]
,.m
devuelve la lista de elementos con un valor de función mínimo (conb
),l{Pb
obtiene el recuento de divisores distintos,-
descartaZ
de la lista,!
aplica la negación lógica)h
es+1
,t
es-1
, mientras queK
es una variable que se asigna sin=
. Por ejemplo,K4
asignaK
a4
. 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
N
número th en la secuencia, 1 indexado.Intentalo
Explicación
Entrada implícita de entero
U
.Devuelve el primer entero
X
que 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 ( )k
del resultado.Gire el conjunto resultante uno a la derecha.
Pop (
o
) el último elemento deX
y compruebe si todos los elementos restantes son mayores que él.Si es así, disminuya
U
y verifique si es igual a 0.fuente
Python 3 , 97 bytes
En teoría, esto imprime la secuencia indefinidamente. En la práctica,
g
eventualmente 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