소수 거리

시간 제한1초메모리 제한128 MB

문제

정수론은 수의 성질을 다루는 수학의 한 분야이며, 그중에서도 소수는 오랫동안 많은 수학자들의 관심을 받아 왔다. 소수란 $1$과 자기 자신 외에는 어떤 약수도 갖지 않는, $1$보다 큰 정수이다. 가장 작은 소수는 $2, 3, 5, 7$이며, 수가 커질수록 소수는 점점 드물게 나타난다.

두 소수가 인접(adjacent) 하다는 것은, 둘 다 소수이면서 그 사이에 다른 소수가 하나도 없음을 뜻한다. 예를 들어 $2$와 $3$은 서로 인접한 소수이다.

두 정수 $L$과 $U$가 주어진다($1 \le L < U \le 2{,}147{,}483{,}647$). 구간 $[L, U]$ 안에서 다음을 구하라.

  • 서로 가장 가까운 인접 소수 쌍 $C_1 < C_2$, 즉 $C_2 - C_1$이 최소인 쌍.
  • 서로 가장 인접 소수 쌍 $D_1 < D_2$, 즉 $D_2 - D_1$이 최대인 쌍.

두 경우 모두 같은 거리의 쌍이 여러 개라면, 가장 먼저 나타나는 쌍(첫 번째 수가 가장 작은 쌍)을 택한다.

입력

입력은 여러 줄로 이루어지며 파일의 끝까지 계속된다. 각 줄에는 두 양의 정수 $L$과 $U$가 공백으로 구분되어 주어지고, 항상 $L < U$이다. 한 줄에서 $U - L$은 $1{,}000{,}000$을 넘지 않는다.

출력

각 입력 줄마다 한 줄을 출력한다.

  • 구간 $[L, U]$ 안에 소수가 두 개 미만이어서 인접한 소수 쌍을 만들 수 없으면 다음을 출력한다.

    There are no adjacent primes.

  • 그렇지 않으면 가장 가까운 쌍과 가장 먼 쌍을 다음 형식으로 출력한다.

    C1,C2 are closest, D1,D2 are most distant.

    여기서 C1,C2는 가장 가까운 인접 소수 쌍, D1,D2는 가장 먼 인접 소수 쌍이며, 각 쌍의 두 수는 쉼표로 구분한다.