Chuỗi Primenary ( binary-Prime ) là một chuỗi mà khi được viết dưới dạng lưới nhị phân, mỗi hàng và cột có tổng số nguyên tố.
Đó là một lời giải thích khá mơ hồ, vì vậy hãy phá vỡ nó bằng một ví dụ hoạt động ...
Trong ví dụ này, chúng tôi sẽ sử dụng chuỗi bunny
:
Đầu tiên, tìm điểm mã ASCII của mỗi ký tự và biểu diễn nhị phân của nó:
Char | ASCII | Binary
b 98 1100010
u 117 1110101
n 110 1101110
n 110 1101110
y 121 1111001
Lấy các giá trị nhị phân này, từ trên xuống dưới và sắp xếp chúng thành lưới (thêm các số 0 đứng đầu nếu cần):
1 1 0 0 0 1 0
1 1 1 0 1 0 1
1 1 0 1 1 1 0
1 1 0 1 1 1 0
1 1 1 1 0 0 1
Sau đó, đếm số 1
s trong mỗi hàng và cột:
1 1 0 0 0 1 0 > 3
1 1 1 0 1 0 1 > 5
1 1 0 1 1 1 0 > 5
1 1 0 1 1 1 0 > 5
1 1 1 1 0 0 1 > 5
v v v v v v v
5 5 2 3 3 3 2
Nếu và chỉ khi, mỗi tổng số là số nguyên tố (chẳng hạn như ở đây) thì chuỗi là số nguyên tố nhị phân hợp lệ.
Các thách thức
Nhiệm vụ của bạn là tạo ra một hàm hoặc chương trình, khi được cung cấp một chuỗi, trả về / đầu ra truthy
nếu chuỗi đó là nguyên thủy, và falsy
nếu không.
Quy tắc / Chi tiết
- Bạn có thể cho rằng các ký tự của chuỗi sẽ luôn nằm trong phạm vi ASCII
33-126
(đã bao gồm). - Chuỗi sẽ không trống.
- Một chuỗi nguyên thủy không nhất thiết phải có độ dài nguyên tố - ví dụ,
W1n*
là hợp lệ, mặc dù có 4 ký tự. - Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng - nhưng tất cả các bài nộp đều được chào đón.
- Sơ hở tiêu chuẩn bị cấm.
Các trường hợp thử nghiệm
'husband' -> True
'HOTJava' -> True
'COmPaTIBILE' -> True
'AuT0HACk' -> True
'PPCW' -> False
'code-golf' -> False
'C++' -> False
'/kD' -> False
'HI' -> False
'A' -> False
Ngoài ra còn có một ví dụ Python hoạt động nhưng vô cùng dài dòng trên repl.it mà bạn có thể kiểm tra giải pháp của mình.
False
, đúng không?
0
và 1
không phải là số nguyên tố, và mỗi 1-2 chuỗi đầu vào char chỉ chứa các ký tự trong phạm vi đã cho được đảm bảo chứa ít nhất một 0
hoặc 1
dưới dạng tổng dọc. Bạn nên thêm một số chuỗi ký tự 1 và 2 làm trường hợp thử nghiệm.
false
. 2 đầu vào char có thể, nhưng không nằm trong phạm vi ASCII mà chúng tôi đang sử dụng, vì vậy với kịch bản này, bạn đã đúng.
husband
là hợp lệ? Hoặc bất kỳ trong số họ? Vấn đề lớn, mặc dù!