소수 거리

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

요약
각 구간 [L, U]에서 이웃한 두 소수 사이의 거리가 가장 가까운 쌍과 가장 먼 쌍을 구한다.
난이도

보통10점 중 5점

유형
정수론, 수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

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

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

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

  • 서로 가장 가까운 인접 소수 쌍 C1<C2C_1 < C_2, 즉 C2−C1C_2 - C_1이 최소인 쌍.
  • 서로 가장 먼 인접 소수 쌍 D1<D2D_1 < D_2, 즉 D2−D1D_2 - D_1이 최대인 쌍.

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

입력

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

출력

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

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

    There are no adjacent primes.

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

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

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

예제3

  1. 예제 1

    입력
    2 17
    14 17
    
    예상 출력
    2,3 are closest, 7,11 are most distant.
    There are no adjacent primes.
    
  2. 예제 2

    입력
    1 10
    
    예상 출력
    2,3 are closest, 3,5 are most distant.
    
  3. 예제 3

    입력
    10 20
    
    예상 출력
    11,13 are closest, 13,17 are most distant.