Hãy gán các số từ 0 đến 94 cho 95 ký tự ASCII có thể in :
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Dung lượng là 0, !
là 1 và cứ tiếp tục ~
là 94. Chúng tôi cũng sẽ gán 95 cho tab ( \t
) và 96 cho dòng mới ( \n
).
Bây giờ hãy xem xét chuỗi vô hạn có ký tự Nth là ký tự ở trên mà số nguyên tố thứ N , modulo 97, đã được gán cho. Chúng tôi sẽ gọi chuỗi này S.
Ví dụ, số nguyên tố đầu tiên là 2 và 2 mod 97 là 2 và 2 được gán cho "
, vì vậy ký tự đầu tiên của S là "
. Tương tự, số nguyên tố thứ 30 là 113 và 113 mod 97 là 16 và 16 được gán cho 0
, vì vậy ký tự thứ 30 của S là 0
.
1000 ký tự đầu tiên của S như sau:
"#%'+-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 biến các tab thành không gian, vì vậy đây là một PasteBin với các tab còn nguyên vẹn.
Thử thách
Tìm một chuỗi con của S là một chương trình hợp lệ trong ngôn ngữ bạn chọn, xuất ra các số nguyên tố M đầu tiên, mỗi số trên một dòng, theo thứ tự , cho một số nguyên dương M.
Ví dụ: 2
là một chuỗi con của S (nó xuất hiện ở nhiều nơi nhưng bất kỳ sẽ làm được) và 2
là một chương trình CJam hợp lệ có đầu ra là
2
đó là số nguyên tố M = 1 đầu tiên, một số trên mỗi dòng, theo thứ tự.
Tương tự, chuỗi 2N3N5
có thể là chuỗi con của S ở đâu đó và 2N3N5
là chương trình CJam hợp lệ xuất ra
2
3
5
đó là số nguyên tố M = 3 đầu tiên, mỗi số một dòng, theo thứ tự.
Chấm điểm
Bài nộp có M cao nhất sẽ thắng. Tie breaker đi đến trình gửi đầu tiên.
Chi tiết
Không nên có đầu ra bổ sung ngoài các số nguyên tố duy nhất trên mỗi dòng, ngoại trừ một dòng mới tùy chọn sau dòng cuối cùng. Không có đầu vào.
Chuỗi con có thể dài bất kỳ chừng nào nó còn hữu hạn.
Chuỗi con có thể xảy ra ở bất cứ đâu trong S. (Và S có thể chứa nó ở nhiều nơi.)
Chương trình phải là một chương trình chính thức. Bạn không thể cho rằng nó được chạy trong môi trường REPL.
Chương trình phải chạy và chấm dứt trong một khoảng thời gian hữu hạn mà không có lỗi.
"Dòng mới" có thể được hiểu là bất kỳ đại diện dòng mới nào cần thiết cho hệ thống / trình thông dịch / v.v. Chỉ cần coi nó là một nhân vật.
Bạn phải đưa ra chỉ mục của S nơi chuỗi con của bạn bắt đầu, cũng như độ dài của chuỗi con nếu không phải là chuỗi con. Bạn không chỉ cho thấy chuỗi con phải tồn tại.
Liên quan: Tìm kiếm các chương trình trong một bảng Boggle lớn