Este es el PPCG Prime
624 dígitos de largo
777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777111111111111111111111111111111111111111111111111111111111111111111111111111111188888888118888888811188888811188888811188111118818811111881881111881881111881188111118818811111881881111111881111111188888888118888888811881111111881118888188111111118811111111881111111881111881188111111118811111111881111881881111881188111111118811111111188888811188888811111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333
Si dividimos cada 39 dígitos obtenemos
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
111111111111111111111111111111111111111
111111111111111111111111111111111111111
188888888118888888811188888811188888811
188111118818811111881881111881881111881
188111118818811111881881111111881111111
188888888118888888811881111111881118888
188111111118811111111881111111881111881
188111111118811111111881111881881111881
188111111118811111111188888811188888811
111111111111111111111111111111111111111
111111111111111111111111111111111111111
333333333333333333333333333333333333333
Su tarea es generar el PPCG-Prime
Este es codegolf. El código más corto en bytes gana.
Si ingresa el PPCG-Prime en la función de Mathematica a continuación, obtendrá este resultado
ArrayPlot@Partition[IntegerDigits@#,39]&
n
sea primo es proporcional a1/log(n)
, que de todos modos no es muy pequeña. Solo verifica muchos números hasta que sea primo.log(n)
se trata1436.6
en este caso.x/logx
de GaussRespuestas:
Jalea ,
5554524746 bytesHay enfoques más intrincados en el historial de revisiones, pero este simple los supera a todos.
Pruébalo en línea!
Cómo funciona
Este es un literal numérico, codificado en la base biyectiva 250, donde los dígitos se toman de la página de códigos de Jelly. El argumento de la cadena (izquierda) y el valor de retorno se establecen en el entero codificado,
n: = 0x21871c77d7d7af6fafafeff0c37f72ff7fbfbdbfdfef5edfeff8e3 .
Un literal similar al anterior, pero el segundo
“
separa dos enteros codificados. El valor de retorno se reemplaza con la matriz codificada, [777711, 113] .D
convierte el valor de retorno a decimal ( [[7, 7, 7, 7, 1, 1], [1, 1, 3]] ), luegox39
repite cada entero / dígito individual en el resultado 39 veces. Esto produce un par de matrices, que contienen los dígitos antes y después del texto alto de 7 caracteres, respectivamente. Vamos a llamar a esta matriz A .Primero,
B
convierte el argumento (izquierdo) n en binario. Esto produce los dígitos que forman el texto alto de 7 caracteres, donde cada 88 ha sido reemplazado por 0 .Luego,
j
une la matriz A , utilizando la matriz binaria como separador.Esto realiza un OR lógico con 88 , reemplazando cada 0 con 88 .
Tenemos los dígitos correctos ahora, pero en una matriz de 7 's, 1 ' s, 88 's y 3 ' s.
V
implícitamente convierte esta matriz en una cadena y luego la evalúa, produciendo un solo entero.fuente
Chicle , 51 bytes
Pruébalo en línea!
fuente
SOGL V0.12 ,
5251 bytescorbatas ¡chicle!
tenga en cuenta que esta respuesta contiene una pestaña
Pruébalo aquí!
Intenta guardar bytes reutilizando la misma cadena para ambos
P
s.Explicación:
Los números allí se guardan a partir del original, comenzando en la parte inferior izquierda, subiendo, luego 1 a la derecha y abajo, luego arriba, etc.
Una versión de compresión simple de 52 bytes:
Pruébalo aquí!
fuente
...‘
obtienen esos números?...‘
?CG
en esa herramienta no da...‘
lugar a ninguna parte de esa herramienta.Mathematica, 107 bytes
Pruébalo en línea!
fuente
&
al final).CJam, ASCII, 61
Pruébalo en línea
Añadir
]s39/N*
para un buen envoltorio.Explicación:
fuente
C,
519427414396377 bytesGracias a Tas, Felix Palmen y Lynn.
Para su interés, aquí hay una versión más larga y fácil de leer:
fuente
Java (OpenJDK 8) , 165 bytes
Pruébalo en línea!
Créditos
fuente
n->{for(int i=0;++i<566;)System.out.print(i<157?7:i>526?3:i<236|i>446||new java.math.BigInteger("vnku5g6l0zenpa1kydel5rxw162k4fk4xapa154o",36).testBit(446-i)?1:88);}
88
, gracias!Retina , 129 bytes
Pruébalo en línea!
fuente
Lote,
364335333 bytesfuente
echo|
acd|
(1,1,156) do
se puede acortar a(1,1,156)do
Javascript (ES6),
187181bytes-6 bytes gracias a @JustinMariner
Enfoque super simple; probablemente podría jugarse un poco más.
Explicación
Fragmento de código de ejemplo (con algún código auxiliar para agregar saltos de línea en la salida)
Mostrar fragmento de código
fuente
r
comor=s=>s[0].repeat(39)
y luego reemplacea
,b
yk
conr`7`
etc probarlo en línea! .C (gcc) ,
269267 bytesfunción, utiliza RLE simple.
Pruébalo en línea!
fuente
L"'OP\x9c"
lugar dex
C (gcc) , 224 bytes
Pruébalo en línea!
Contiene algunos no imprimibles, el literal de cadena es
"ww\x11dfFdfFDfFDfFDFDDFFDDFFDddDDFdDDddDDddDDDdDDDDffDffDFDDDFDfdDDDDFDDDdDDDdDDFdDDDDFDDDdDDFFDdDFDDDdDDDDdfDdfD\x11\x03"
.fuente
Jalea , 86 bytes
Pruébalo en línea!
-12 bytes gracias al usuario202729
fuente
“
canseparates a list of strings inside a string literal
)Python 2 ,
309158155136135 bytesPruébalo en línea!
Python 2 , 137 bytes
Pruébalo en línea!
fuente
Jalea , 85 bytes
Pruébalo en línea!
Basado en el enfoque de Dennis para el desafío Trinity Hall, menos la simetría, más los
7
s iniciales y finales3
.fuente
PowerShell , 164 bytes
Pruébalo en línea!
Multiplicación de cadenas, concatenación y reemplazos. PowerShell no tiene base 36 o similar, por lo que las opciones de compresión de gran número son limitadas. Puede haber una mejor manera de "comprimir" la parte media, todavía estoy revisando eso.
fuente
Wolfram Language (Mathematica) , 89 (17 + 71 + 1) bytes
Primero exporta el número a un archivo GZIP. Este archivo, llamado "o" sin extensión tendrá exactamente 71 bytes, lo que cuenta para el total. Por defecto, irá a su
$TemporaryDirectory
. Omitir dígitos para facilitar la lectura.Entonces
reconstruirá el número. El nombre del archivo es un byte, de ahí viene el +1.
Pruébalo en línea!
fuente
Ruby, 109 bytes
El script llama
Zlib.inflate
para descomprimir el número. Necesita al menos Ruby 1.9.3. Contiene bytes no imprimibles, por lo que no puedo pegarlo aquí.Pego la salida de
vis prime-inflate.rb
:Si tiene unvis (1), ejecute
unvis prime-inflate.vis > prime-inflate.rb
para restaurar el script de 109 bytes. O puede decodificar la Base64, a continuación, conruby -e 'print *STDIN.read.unpack(?m)' < prime-inflate.b64 > prime-inflate.rb
.Llamo
Zlib.inflate
así que no necesito diseñar y desarrollar mi propio algoritmo de descompresión. UtilizoDATA
con__END__
porque la cadena comprimida no es válida UTF-8. El código de Ruby debe ser ASCII válido (en Ruby 1.9.x) o UTF-8 (de Ruby 2.0) o debe tener un comentario mágico#coding:binary
para cambiar la codificación, pero Ruby no comprueba la codificación después__END__
.fuente
Python 2 , 112 bytes
Pruébalo en línea!
fuente
6502 código máquina (C64),
142122 bytesDemostración en línea
Uso:
sys49152
Explicación
Esto también usa las longitudes de las secuencias
1
y8
en la parte media; Como todos son más cortos que 16, dos de ellos están codificados por byte.Lista de desmontaje comentada:
fuente
C (gcc) ,
188187185 bytes-1 gracias a JonathanFrech.
-2 gracias a ceilingcat.
Pruébalo en línea!
fuente
Python 2 ,
244128120 bytes-8 bytes gracias a @JonathanFrech
Pruébalo en línea!
fuente
Befunge-93 , 500 bytes
Pruébalo en línea!
fuente