Antecedentes
Un número n
puede describirse como a B
través si todos los factores primos n
exceden estrictamente B
.
El reto
Dados dos enteros positivos B
y k
, salida de los k
B
números de primer paso.
Ejemplos
Dejado f(B, k)
ser una función que devuelve el conjunto que contiene los k
B
números de primer paso.
> f(1, 10)
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
> f(2, 5)
1, 3, 5, 7, 9
> f(10, 14)
1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59
code-golf
number-theory
primes
factoring
Addison Crump
fuente
fuente
B
?n
en primos. Si todos esos números primos son mayores queB
, n esB
pasante.Respuestas:
Haskell ,
5344 bytesPruébalo en línea!
¡Gracias a H.PWiz por -9 bytes!
fuente
(>b)
dentro de la comprensión (que no funciona) pero no al revés. ¡Gracias!Python 3 ,
80, 75 bytesPruébalo en línea!
Gracias a shooqie por guardar 5 bytes.
Esto supone que el k-ésimo número B-aproximado nunca excederáB ∗ k , lo cual no sé cómo probar, pero parece una suposición bastante segura (y no puedo encontrar ningún contraejemplo).
Solución alternativa:
Python 2 , 78 bytes
Pruébalo en línea!
Esta solución no hace la solución anterior. Y es mucho más eficiente.
fuente
lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]
?Jalea , 7 bytes
Pruébalo en línea!
fuente
Perl 6 ,
3532 bytes-3 bytes gracias a nwellnof!
Pruébalo en línea!
Un bloque de código anónimo que toma dos enteros y devuelve una lista de enteros.
Explicación
fuente
all
hacer?all
comprueba si todos los elementos de la lista son verdaderos. Agregaré una explicación para todo en breve[&]
lugar deall
.all
ya no se usa de esa manera, así que debería actualizar mi respuesta.all
crea una unión de los valores en el rango2..b
, y cualquier operación realizada en la unión se realiza en todos los valores de forma simultánea. Cuando es evaluado en contexto booleano porgrep
, esto colapsa en si todos los valores en la unión son verdaderos, es decir, no ceroCasco ,
98 bytesPruébalo en línea!
fuente
Carbón , 33 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Entrada
B
yk
.Conjunto
z
en 0.Repite hasta que tengamos
k
valores.Incremento
z
.Dividir
z
por todos los números de2
aB
y vea si el resto es cero.Si no, entonces presione
z
a la lista vacía predefinida.Convierta la lista en una cadena e implíquela en la salida.
fuente
JavaScript (ES6), 68 bytes
Toma entrada como
(b)(k)
.Pruébalo en línea!
Comentado
fuente
Jalea , 10 bytes
Pruébalo en línea!
Cómo funciona
fuente
JavaScript (Node.js) , 68 bytes
Pruébalo en línea!
fuente
APL (NARS), 52 caracteres, 104 bytes
Arriba parece que las filas después de 'r ← afw; i' tienen nombres 1 2 3; prueba:
fuente
05AB1E , 9 bytes
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente