시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (추가 시간 없음) | 512 MB | 111 | 44 | 40 | 72.727% |
Albert는 최근 소수 (prime)에 대해 배웠다. 1보다 큰 양의 정수 p의 약수가 1과 p뿐인 경우 p를 소수라 한다. 만약 n개의 소수 p[1], p[2], ..., p[n] 이 아래 조건을 만족하면 이는 "연속한 소수" 라고 한다:
예를 들어 [5, 3, 2, 7]과 [11, 7, 5, 13]은 연속한 소수이며 [2, 5, 7]이나 [5, 13, 17] 혹은 [2, 2, 3, 5]는 연속한 소수가 아니다.
Albert는 혼자 할 수 있는 놀이를 생각하던 중, 소수 만들기 라는 게임을 해보기로 했다.
먼저 임의의 양의 정수 n개를 선택한다 (편의상 x[1], x[2], ..., x[n] 이라 하자). 이를 연속한 소수 n개로 바꾸고 싶은데, 아래와 같은 제약이 따른다.
예를 들어 n = 3 이고 x = [7, 13, 3]이라 하자.
다른 예로, n = 3 이고 x = [2, 2, 2]라 하자.
입력으로 Albert가 처음에 고른 n개의 정수 x[1], ..., x[n]이 주어졌을 때, 이를 n개의 연속한 소수로 바꾸기 위해 필요한 최소한의 벌점을 구해보자.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 두 줄에 나누어 주어지는데 첫 줄에 n이 주어지고 다음 줄에 n개의 정수가 공백으로 구분되어 주어진다.
각 테스트 케이스에 대해 입력으로 주어진 정수를 연속된 소수로 바꾸기 위해 필요한 최소한의 벌점을 각 줄에 출력한다.
4 3 2 2 2 4 5 7 12 12 3 7 13 3 7 74 79 7 16 46 68 71
4 2 4 106
예제 1: 본문에서 다루었다
예제 2: 추가 설명 없음
예제 3: 본문에서 다루었다
예제 4: 입력으로 주어진 정수를 다음 7개의 고유한 소수로 바꾸는 경우를 생각해보자: 73 79 53 59 61 67 71 이 때 벌점은 1 + 0 + 46 + 43 + 15 + 1 + 0 = 106으로 최소가 된다.