먼저, 문자열 A와 B를 문자 X를 기준으로 나눠서 LA/RA와 LB/RB로 만들어줍니다.
그 후, LCS(LA, LB) + 1 + LCS(RA, RB)가 문제 조건을 만족하는 LCS가 됩니다.
마지막으로, 구한 LCS의 길이보다 작거나 같은 가장 큰 소수를 구해서 출력해주면 됩니다.
LCS 6과 다른 점이 약간의 관찰밖에 없는데, 문제의 티어는 :ruby5:임에도 불구하고 관찰 난이도는 실버 정도밖에 되지 않는다는 점이 좀 아쉽네요.. N 제한을 5만까지 늘려서 억지로 난이도를 높인 느낌이 좀 들어요
여담으로, 풀고 프로필 강제 갱신까지 했는데도 스트릭이 이어지지 않아서 한 문제를 더 풀어야 했습니다.