소수 사이 수열

면접 대비

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

요약
주어진 수 k가 합성수이면 이를 감싸는 두 연속 소수 사이의 간격 길이를 구하고, 소수라면 0을 출력합니다.
난이도

쉬움10점 중 3점

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

문제

연속한 두 소수 pp와 p+np + n에 대해, 그 사이에 있는 n−1n - 1개의 합성수(1도 아니고 소수도 아닌 양의 정수)를 길이가 nn인 소수 사이 수열이라고 부른다.

양의 정수 kk가 주어졌을 때, kk를 포함하는 소수 사이 수열의 길이를 구하는 프로그램을 작성하시오. kk를 포함하는 소수 사이 수열이 없으면 길이는 0이다.

예를 들어 소수 23과 29 사이의 소수 사이 수열은 {24,25,26,27,28}\{24, 25, 26, 27, 28\}이고, 그 길이는 6이다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 한 줄로 이루어지며, 그 줄에 정수 kk가 하나 주어진다. 모든 정수는 1보다 크고, 100000번째 소수인 1299709보다 작거나 같다.

출력

각 테스트 케이스에 대해, kk가 합성수이면 kk를 포함하는 소수 사이 수열의 길이를 출력한다. 그렇지 않으면 0을 출력한다.

예제1

  1. 예제 1

    입력
    5
    10
    11
    27
    2
    492170
    
    예상 출력
    4
    0
    6
    0
    114