BOJ 6210 Wonderprime Brands
BOJ 6210 Wonderprime Brands
문제 내용
양의 정수 과 가 주어질 때, 을 자리 이상이면서 0으로 시작하지 않는 소수인 두 부분으로 나눌 수 있으면 을 원더프라임이라고 합니다.
과 가 주어질 때, 이상의 가장 작은 원더프라임을 구하세요.
입력
첫 번째 줄에 와 이 주어집니다. ()
출력
문제의 정답을 출력합니다. 이 정답은 을 초과하지 않습니다.
문제 풀이
스포일러
원하는 수의 왼쪽 길이를 로, 오른쪽 길이를 로 고정하고, 의 오른쪽 자리를 끊어서 그 값을 , 왼쪽의 나머지 부분의 값을 이라고 합시다. 그러면 다음과 같은 문제가 됩니다.
- 최소의 을 구합니다. 이 수는 이상이면서, , (0으로 시작하지 않음)이고, 과 은 각각 소수여야 합니다.
먼저, 이 이상의 소수인지 확인합니다. 그렇다면 이상이면서 이상인 가장 작은 소수를 확인합니다. 이 소수 가 미만이라면, 가 답이 됩니다.
이 조건을 충족하지 못했거나 이면, 을 초과하는 이상의 가장 작은 소수 을 찾습니다. 그러면 은 이상의 가장 작은 소수 로 두면 가 답이 됩니다.
이상의 가장 작은 소수 찾기는 시간의 소수 판별을 이용하여 나이브하게 구현해도 충분히 빠르게 계산할 수 있습니다. 이는 소수들 사이의 최대 간격이 크지 않음을 이용합니다.
Last updated on