아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소수 피하기

시간 제한2초메모리 제한1024 MB

요약
고른 원소들에만 1을 더해 어떤 두 수의 합도 소수가 되지 않게 하는 최소 크기의 인덱스 집합을 찾고, 그 인덱스들을 출력한다.
난이도

보통10점 중 7점

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

문제

NN개의 양의 정수 A_1,⋯ ,A_NA\_1, \cdots, A\_N이 주어집니다. 당신의 목적은 모든 1≤i<j≤N1 \le i < j \le N에 대해서 A_i+A_jA\_i + A\_j가 소수가 아니도록 만드는 것입니다.

이를 위해 당신은 다음 조작을 정확히 11번 할 수 있습니다.

  • 11 이상 NN 이하의 서로 다른 KK개의 정수 i_1,i_2,⋯ ,i_Ki\_1, i\_2, \cdots, i\_K를 고릅니다. A_i_1,A_i_2,⋯ ,A_i_KA\_{i\_1}, A\_{i\_2}, \cdots, A\_{i\_K}에 각각 11을 더합니다. (0≤K≤N)(0 \le K \le N)

모든 1≤i<j≤N1 \le i < j \le N에 대해서 A_i+A_jA\_i + A\_j가 소수가 아니도록 하는 조작에서 KK의 최솟값을 출력하세요.

입력

첫 줄에 수의 개수 NN이 주어집니다. (2≤N≤200)(2 \le N \le 200)

둘째 줄에 A_1,⋯ ,A_NA\_1, \cdots, A\_N이 공백으로 구분되어 주어집니다. (1≤A_i≤1,000,000)(1 \le A\_i \le 1\\,000\\,000)

출력

모든 1≤i<j≤N1 \le i < j \le N에 대해서 A_i+A_jA\_i + A\_j가 소수가 아니도록 하는 조작의 KK의 최솟값을 출력하세요.

K≠0K \ne 0인 경우, 둘째 줄에 고른 i_1,i_2,⋯ ,i_Ki\_1, i\_2, \cdots, i\_K를 공백으로 구분하여 출력하세요. 정답이 여럿인 경우 아무거나 출력해도 좋습니다.

예제3

  1. 예제 1

    입력
    6
    3 1 4 1 5 9
    
    예상 출력
    5
    1 2 4 5 6
    
  2. 예제 2

    입력
    10
    30 41 66 70 104 110 153 165 231 385
    
    예상 출력
    3
    5 7 2
    
  3. 예제 3

    입력
    6
    2520 2521 2522 2523 2524 2525
    
    예상 출력
    0