Công bằng mà nói, điều này dựa trên câu hỏi StackExchange - nhưng đây là một câu hỏi hay.
Thử thách khá đơn giản:
- Lấy một chuỗi các chữ số
- Tìm và in số nguyên tố tiếp giáp lớn nhất trong chuỗi
Ghi điểm:
- Số lượng nhân vật thấp nhất sẽ thắng.
- Victor có thể sẽ là một mục golf, nhưng chúng tôi sẽ không chống lại họ, vì tất cả chúng ta đều vui vẻ và học hỏi mọi thứ, đúng không.
- Người chiến thắng chúng tôi được trao giải khi tôi nhận thấy rằng tôi chưa thực sự đánh dấu vào nút màu xanh lá cây.
Giả định:
- Chuỗi chỉ là số
- Nếu chuỗi chứa các chữ cái, bạn có thể có hành vi không xác định
- Chuỗi chứa ít nhất 1 số nguyên tố
- Nếu chuỗi không chứa 1 số nguyên tố hợp lệ, bạn có thể có hành vi không xác định
- Tốc độ không phải là một hạn chế
- Sử dụng một thuật toán nguyên tố ngắn hơn một thuật toán nhanh hơn.
- Nếu mục nhập của bạn cuối cùng kết thúc, điều đó ổn, chỉ cần đảm bảo rằng nó sẽ có thể chứng minh được trước cái chết nhiệt của vũ trụ.
- Độ dài của chuỗi có thể được giả sử dài dưới 15 ký tự
Ví dụ:
>> Input: 3571
<< Output: 3571
>> Input: 123
<< Output: 23
>> Input: 1236503
<< Output: 236503
>> Input: 46462
<< Output: 2
>> Input: 4684
<< Output: ValueError: max() arg is an empty sequence
>> Input: 460
<< Output: 0 # Note, zero is not a prime, but the above string has no valid prime
>> Input: 4601
<< Output: 601
>> Input: "12 monkeys is a pretty good movie, but not as good as se7en"
<< Output: ValueError: Fight Club was also good, I find Brad Pitt to be a consistantly good actor.
Triển khai có thể:
- Tìm tất cả các chuỗi con của đầu vào, kiểm tra xem chúng có phải là số nguyên tố không. - Legostormtroopr (bản gốc)
- Tìm tất cả các số nguyên ít hơn đầu vào, kiểm tra xem chúng có trong đầu vào không, sau đó kiểm tra xem đó có phải là số nguyên tố không - Ben Reich
- Lấy danh sách tất cả các số nguyên tố nhỏ hơn đầu vào, kiểm tra xem nó có trong đầu vào không - daniero