Attribuons les chiffres de 0 à 94 aux 95 caractères ASCII imprimables :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
L'espace est 0, !
est 1, et ainsi de suite jusqu'à ~
94. Nous assignerons également 95 à tab ( \t
) et 96 à newline ( \n
).
Considérons maintenant la chaîne infinie dont le Nième caractère est le caractère au-dessus auquel le Nième nombre premier , modulo 97, a été affecté. Nous appellerons cette chaîne S.
Par exemple, le premier nombre premier est 2, et 2 mod 97 est 2, et 2 est affecté à "
, donc le premier caractère de S est "
. De même, le 30e nombre premier est 113, et 113 mod 97 est 16, et 16 est affecté à 0
, donc le 30e caractère de S est 0
.
Les 1000 premiers caractères de S sont les suivants:
"#%'+-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 transforme les onglets en espaces, voici donc un PasteBin avec les onglets intacts.
Défi
Trouvez une sous - chaîne de S qui est un programme valide dans la langue de votre choix qui produit les M premiers nombres premiers, un par ligne, dans l'ordre , pour un entier positif M.
Par exemple, 2
est une sous-chaîne de S (elle se produit à plusieurs endroits mais tout le monde le fera), et 2
est un programme CJam valide dont la sortie est
2
qui est les premiers M = 1 nombres premiers, un par ligne, dans l'ordre.
De même, la chaîne 2N3N5
peut être une sous-chaîne de S quelque part et 2N3N5
est un programme CJam valide qui génère
2
3
5
qui est le premier M = 3 nombres premiers, un par ligne, dans l'ordre.
Notation
La soumission avec le plus haut M gagne. Le bris d'égalité va à la soumission publiée en premier.
Détails
Il ne devrait pas y avoir de sortie supplémentaire en plus des nombres premiers simples sur chaque ligne, à l'exception d'une nouvelle ligne facultative après la dernière ligne. Il n'y a aucune entrée.
La sous-chaîne peut être de n'importe quelle longueur tant qu'elle est finie.
La sous-chaîne peut se produire n'importe où dans S. (Et S peut la contenir à plusieurs endroits.)
Le programme doit être un programme à part entière. Vous ne pouvez pas supposer qu'il est exécuté dans un environnement REPL.
Le programme doit s'exécuter et se terminer en un temps limité sans erreur.
"Newline" peut être interprété comme toute représentation de nouvelle ligne commune nécessaire à votre système / interprète / etc. Traitez-le comme un seul personnage.
Vous devez donner l'index de S où commence votre sous-chaîne, ainsi que la longueur de la sous-chaîne sinon la sous-chaîne elle-même. Vous pouvez non seulement montrer que la sous-chaîne doit exister.
En relation: Recherche de programmes dans un immense tableau Boggle