Entrada
no hay entrada para este desafío
El reto
Escriba un código que genere:
Los primeros 10 números primos cuya suma de sus dígitos es igual al número de bytes de su código
Ejemplos
Digamos que su código es el Co&%423@k"oo"
que 13 bytes
debe generar su código, [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
esos son los primeros 10 números primos cuya suma ... ¡está bien!
Si su código es 8 bytes
, debe generar[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Reglas
Solo debe usar los primeros 10 ^ 8 números primos, lo
que significa que todos sus números deben ser <2038074743 = 10 ^ 8º primo
Si no puede encontrar 10 números primos en este rango que se ajusten a sus bytes, entonces tendrá que ajustar su código (¡incluso puede que tenga que agregar algunos bytes!) Para encontrar un " número de bytes de trabajo "
Simplemente envíe los 10 primos de la forma que desee
Este es el código de golf , por lo que gana el código más corto en bytes.
Respuestas:
Neim ,
1087 bytes-1 byte gracias a ASCII-only.
Pruébalo en línea!
Salidas:
Esto (bueno, al menos el enfoque) es irrefrenable.
Explicación
fuente
νᛦ𝐋Λ𝐬7𝔼
para 7 ... editar:π
->ν
: pJalea , 14 bytes
Pruébalo en línea!
Esto imprime:
Cómo funciona
fuente
Pyth , 14 bytes
Pruébalo aquí
Esto es 14 bytes e imprime:
Pyth , 16 bytes
Pruébalo aquí!
Tenga en cuenta que esto podría ser 15 bytes:
.f&qssM`Z16P_ZTZ
pero no hay primos que tengan 15 como la suma de sus dígitos, ya que15
es divisible por3
, lo que implicaría que el número también sería divisible por3
, por lo tanto, no es primo.Tiene 16 bytes de longitud e imprime:
¿Cómo?
Explicacion 1
Explicacion 2
fuente
Casco , 13 bytes
Pruébalo en línea!
Explicación
fuente
Haskell ,
7771 bytesPruébalo en línea!
Guardado 6 bytes gracias a Laikoni
Para 71 bytes:
1999999999 es el número con la suma máxima de dígitos en el rango permitido, y esa suma es 82. Cualquier programa que supere los 82 bytes no satisfará la condición. Espero que 77 bytes estén bien, pero no sé (todavía se está ejecutando en mi computadora).
EDITAR: una versión ligeramente optimizada dio 77 bytes:
fuente
Jalea ,
1413 bytesPruébalo en línea!
¿Cómo?
fuente
Brachylog , 13 bytes
Pruébalo en línea!
fuente
05AB1E , 10 bytes
Pruébalo en línea!
El
}
se utiliza como relleno, ya que 9 es un recuento de bytes no válido.Salida:
[19, 37, 73, 109, 127, 163, 181, 271, 307, 433]
Explicación
Casi 8 bytes
Esto sería válido si un byte más pudiera ser eliminado.
Pruébalo en línea!
Salida:
[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Explicación
fuente
Mathematica, 52 bytes
gracias a @No es un árbol para -6 bytes
fuente
Select
cuántas cosas quieres devolver:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
J, 29 bytes
Pruébalo en línea!
Definitivamente funciona en REPL, probablemente también funciona en un programa regular (no estoy seguro de cómo J genera resultados para que los programas sean honestos).
Primer paso, no particularmente ideal, pero no puedo pensar en enfoques más inteligentes. Voy a investigar el hardcoding de una secuencia más pequeña.
Explicación
872 garantiza que solo se utilizarán los primeros 10 primos cuya suma digital sea 29.
fuente
V ,
7371 bytesPruébalo en línea!
Compresión de reemplazo de subcadena simple: verifiqué todas las salidas de respuesta posibles y luego hice algunas pruebas de "cuál tiene un reemplazo de cadena simple que guarda la mayoría de los caracteres". por ejemplo, generar esta tabla . [editar: volví a mirar la mesa y vi que podía hacer la versión de 71 bytes].
Los primos más altos tienen más tiradas largas de 9, y lo mejor que encontré fue donde los dígitos suman 73, el patrón 89999 -> 1 char reduce el texto de 99 bytes a 63 bytes. Encontrar una forma de deshacer 'a' -> '89999' en los 10 bytes restantes me llevó a V.
fuente
Japt , 19 bytes
Pruébalo
Explantacion
Genere una matriz de enteros (
õ
) de 1 a 100 (L
) al cuadrado.Filter (
f
) pasando cada uno a través de una función, dondeZ
está el elemento actual.Comprueba si
Z
es primo.Lógico Y (
&&
).Dividir
Z
en una matriz de dígitos (ì
) y reducir mediante la suma (x
).Verifique la igualdad con
19
.Cortar (
¯
) al décimo elemento y generar implícitamente la matriz resultante.fuente
Japt , 19 bytes
Pruébalo en línea! con la
-Q
bandera para formatear la matriz.Emite los primeros 10 primos cuyos dígitos se suman a
19
:Tenga en cuenta que esto podría ser golfizado a 18 bytes (
ì x
→ìx
), pero no existen números primos con una suma de 18 dígitos.Explicación
Asigne la matriz
[0, ..., 9]
mediante la siguiente función, dondeX
está el valor actual.Devuelve el primer entero que devuelve verdadero de la siguiente función, donde
Z
es el valor actualCompruebe si este número es primo y ...
La suma (
x
) de los dígitos (ì
) enZ
igual a (¥
) 19,Y
X
es falso («
es "y no", o&&!
). Esto también disminuyeX
(´
).La matriz resultante se emite implícitamente.
fuente
PARI / GP, 40 bytes
No hay mucho golf al respecto (seleccione aquellos
x
con la suma de los dígitos 40 entre los primeros 8600 primos). Salida es:fuente
Pyke , 10 bytes
Pruébalo aquí!
fuente
Ruby 2.4.1, 74 bytes
Nunca iba a superar uno de los lenguajes optimizados de Codegolf, pero aún así fue divertido hacerlo en Ruby. Frustrante que Prime no está en Core sino en la biblioteca estándar. También estoy frustrado porque no puedo vencer a Haskell.
fuente
Paradoc (v0.2.7 +), 10 bytes (CP-1252)
Pruébalo en línea!
Algo cuestionable ya que imprime todos los números sin separador entre ellos. Un programa de 11 bytes que imprime cada número en una línea separada:
Lo único que vale la pena mencionar es el límite superior que es un poco más difícil de construir:
Iè
es 18² = 324.fuente
Chicle , 37 bytes
Pruébalo en línea!
La salida es
29989,39799,39979,48799,48889,49789,56989,58699,58789,58897
fuente