Asignemos los números del 0 al 94 a los 95 caracteres ASCII imprimibles :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
El espacio es 0, !
es 1, y así hasta que ~
sea 94. También asignaremos 95 a tab ( \t
) y 96 a nueva línea ( \n
).
Ahora considere la cadena infinita cuyo enésimo carácter es el carácter anterior al que se ha asignado el enésimo número primo , módulo 97. Llamaremos a esta cadena S.
Por ejemplo, el primer número primo es 2, y 2 mod 97 es 2, y 2 está asignado a "
, por lo que el primer carácter de S es "
. Del mismo modo, el número 30 primo es 113, y 113 mod 97 es 16, y se asigna 16 0
, por lo que el carácter 30 de S es 0
.
Los primeros 1000 caracteres de S son los siguientes:
"#%'+-137=?EIKOU[]cgiosy $&*,0>BHJTV\bflrt~
#%1=ACGMOY_ekmswy"046:HNXZ^dlrx|!)-5?AKMSW]eiko{"&.28DFX^hntv|%+139?CEQ[]agmo{ $,6>HPV\`hnrz~+5ACMOSU_mqsw$(*.BFNX`djp~!'-5;GKQS]_eoq{}"48:>DJRX^tv
'17=EQU[aciu 026<>DHJNZ\b#)/7ISaegkqy} $0:<@BFLXdlx~!'/3;?MQWY]ceku(.24LPR\hjt|!'-?EIKWamu$28<>BDNZ`fxz)+AGOUY[_gmwy"0:@LNRT^jl|~#')3;Meiow&(,4DFJRX^bnp%+-37=KQUW]agsy ,06BJPTn
)15;=CYegw ".<FHLTZ`dfjpx|~#-/9AES]ikquw&48>FLPbjtz
'1=KOU[]y{$,0>BJV\hlr%/1A[_amsw"(04<RTXZf!#)/59?AMQ]_ik{},2FV^bdhj
'39CEIOQWacoy{$28<BJPVfrtx%+/7AIOUkqs}*.4FHR`dfp~!);?EGKQS_cw,8:>DJLRhjp
%139EUW[aosu&>HNPZ\fhrxz#%/5=[egqy (:@LXZlrv|!35?MSWY]uw"(8@FL^nptz|!'17COacim &>BDHNP\`n+5;GU[eqsw}$*46:HNTX^`jl|'/AEKWY_ek&,:>FPXdvz|
7CIK[agu ,0NTZ`hnrt
%)+1GMOSegkwy "<BHLT^~-/59;?AKY_cku{.24:X\dntz!'37=?EIOQ[]ms&*6D`fz~/7=AGU[akmw"*46@HT^vx|#)-5GQW]_eo{}&,28@FPVX^djt|39OQcgoy6>PTV`fhnr#+7IY_ams} (*0:HLdfvx!#-AEGKScioq},48>\^hjptz
'-1=CKW[iu 6<HNPfn
)/=ACIS[aek(6@BNXZjl~5GM]ouw(,24>FPV\dhnpz|'+179EIWims&*28<DHV\`nz~
=AY_eq}*046:LR^
Stack Exchange convierte las pestañas en espacios, así que aquí hay un PasteBin con las pestañas intactas.
Desafío
Encuentre una subcadena de S que sea un programa válido en su idioma de elección que genere los primeros números primos M, uno por línea, en orden , para algún número entero positivo M.
Por ejemplo, 2
es una subcadena de S (ocurre en varios lugares pero cualquiera servirá), y 2
es un programa CJam válido cuya salida es
2
que son los primeros M = 1 números primos, uno por línea, en orden.
Del mismo modo, la cadena 2N3N5
puede ser una subcadena de S en algún lugar, y 2N3N5
es un programa CJam válido que genera
2
3
5
que es el primer M = 3 números primos, uno por línea, en orden.
Puntuación
La presentación con la M más alta gana. El desempate va a la presentación publicada primero.
Detalles
No debería haber salida adicional además de los números primos individuales en cada línea, excepto una nueva línea final opcional después de la última línea. No hay entrada
La subcadena puede tener cualquier longitud siempre que sea finita.
La subcadena puede aparecer en cualquier lugar dentro de S. (y S puede contenerla en varios lugares).
El programa debe ser un programa completo. No puede suponer que se ejecuta en un entorno REPL.
El programa debe ejecutarse y finalizar en un tiempo finito sin errores.
"Nueva línea" puede interpretarse como cualquier representación común de nueva línea necesaria para su sistema / intérprete / etc. Solo trátalo como un personaje.
Debe dar el índice de S donde comienza su subcadena, así como la longitud de la subcadena, si no la subcadena misma. No solo puede mostrar que la subcadena debe existir.
Relacionado: Buscando programas en un gran tablero de Boggle