Weisen wir den 95 druckbaren ASCII-Zeichen die Nummern 0 bis 94 zu :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Das Leerzeichen ist 0, !
ist 1 usw. bis ~
94. Wir weisen tab ( \t
) auch 95 und newline ( \n
) 96 zu .
Betrachten Sie nun die unendliche Zeichenfolge, deren N-tes Zeichen das Zeichen darüber ist, dem die N-te Primzahl Modulo 97 zugewiesen wurde. Wir nennen diesen String S.
Zum Beispiel ist die erste Primzahl 2 und 2 mod 97 2 ist , und 2 zugeordnet ist "
, so dass das erste Zeichen von S ist "
. In ähnlicher Weise ist die 30. Primzahl 113 und 113 mod 97 ist 16 und 16 ist zugewiesen 0
, so dass das 30. Zeichen von S ist 0
.
Die ersten 1000 Zeichen von S lauten wie folgt:
"#%'+-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 wandelt Tabulatoren in Leerzeichen um. Hier ist also ein PasteBin mit intakten Tabulatoren.
Herausforderung
Suchen Sie einen Teilstring von S, der ein gültiges Programm in der Sprache Ihrer Wahl ist und die ersten M Primzahlen ausgibt, eine pro Zeile, um eine positive ganze Zahl M zu erhalten.
Zum Beispiel 2
ist es ein Teilstring von S (er kommt an mehreren Stellen vor, aber jeder wird es tun) und 2
ist ein gültiges CJam- Programm, dessen Ausgabe ist
2
Dies ist die erste M = 1 Primzahl, eine pro Zeile, in der Reihenfolge.
In ähnlicher Weise kann die Zeichenfolge 2N3N5
irgendwo 2N3N5
eine Teilzeichenfolge von S sein und ist ein gültiges CJam-Programm, das ausgegeben wird
2
3
5
Dies ist die erste M = 3 Primzahl, eine pro Zeile, in der Reihenfolge.
Wertung
Die Einreichung mit dem höchsten M gewinnt. Tie Breaker geht an die zuerst gepostete Einreichung.
Einzelheiten
Außer den einzelnen Primzahlen in jeder Zeile sollte keine zusätzliche Ausgabe erfolgen, mit Ausnahme einer optionalen nachgestellten neuen Zeile nach der letzten Zeile. Es gibt keine Eingabe.
Der Teilstring kann beliebig lang sein, solange er endlich ist.
Der Teilstring kann an einer beliebigen Stelle in S vorkommen. (Und S kann ihn an mehreren Stellen enthalten.)
Das Programm muss ein vollwertiges Programm sein. Sie können nicht davon ausgehen, dass es in einer REPL-Umgebung ausgeführt wird.
Das Programm muss in einer begrenzten Zeit ohne Fehler ausgeführt und beendet werden.
"Newline" kann als jede allgemeine Newline-Darstellung interpretiert werden, die für Ihr System / Ihren Interpreter / etc. Erforderlich ist. Behandle es einfach als einen Charakter.
Sie müssen den Index von S angeben, an dem Ihre Teilzeichenfolge beginnt, sowie die Länge der Teilzeichenfolge, wenn nicht die Teilzeichenfolge selbst. Sie können nicht nur zeigen, dass der Teilstring vorhanden sein muss.
Verwandte: Suche nach Programmen in einem riesigen Boggle-Board