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]&


nsea 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.6en este caso.x/logxde 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] .Dconvierte el valor de retorno a decimal ( [[7, 7, 7, 7, 1, 1], [1, 1, 3]] ), luegox39repite 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,
Bconvierte 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,
june 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.
Vimplí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
Ps.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?...‘?CGen 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) dose puede acortar a(1,1,156)doJavascript (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
rcomor=s=>s[0].repeat(39)y luego reemplacea,bykconr`7`etc probarlo en línea! .C (gcc) ,
269267 bytesfunción, utiliza RLE simple.
Pruébalo en línea!
fuente
L"'OP\x9c"lugar dexC (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
7s 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.inflatepara 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.rbpara 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.inflateasí que no necesito diseñar y desarrollar mi propio algoritmo de descompresión. UtilizoDATAcon__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:binarypara 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:
sys49152Explicación
Esto también usa las longitudes de las secuencias
1y8en 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