import java.util.ArrayList; import java.util.Scanner;
public class Main2 { public static void main(String[] args) { //标准输入 Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int size = sc.nextInt(); int[] ints = new int[size]; for (int i = 0; i < size; i++) { int next = sc.nextInt(); ints[i] = next; }
ArrayList<Integer> j = new ArrayList<>();
ArrayList<Integer> u = new ArrayList<>();
for (int i = 0; i < size; i++) {
if (ints[i] %2 !=0){
j.add(ints[i]);
}else {
u.add(ints[i]);
}
}
int count = 0;
// 记录偶数对应的伴侣
int[] bl = new int[u.size()];
for (int i = 0; i < j.size(); i++) {
// 记录该轮中的偶数有没有被访问
boolean[] booleans = new boolean[u.size()];
if (isOk(j.get(i),u,bl,booleans)){
count++;
}
}
System.out.println(count);
}
}
private static boolean isOk(int j, ArrayList<Integer> u, int[] bl, boolean[] booleans) {
for (int i = 0; i < u.size(); i++) {
// 是素数且该偶数没有被访问过
if (isSusu(j + u.get(i)) && !booleans[i]){
booleans[i] = true;
// 该位置的偶数没有伴侣,或者他的伴侣能找到新的偶数作为伴侣
if(bl[i] == 0 || isOk(bl[i],u,bl,booleans)){
bl[i] = j;
return true;
}
}
}
return false;
}
private static boolean isSusu(int i) {
if(i==1) return false;
for (int j = 2; j <= (int)Math.sqrt(i); j++) {
if(i % j == 0){
return false;
}
}
return true;
}
}



京公网安备 11010502036488号