import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] nums = new int[n]; for (int i = 0; i < n; i++) { nums[i] = sc.nextInt(); } List<Integer> odds = new ArrayList<>(); List<Integer> evens = new ArrayList<>(); for (int num : nums) { if (num % 2 == 0) { evens.add(num); } else { odds.add(num); } } int[] match = new int[evens.size()]; Arrays.fill(match, -1); int count = 0; for (int i = 0; i < odds.size(); i++) { boolean[] used = new boolean[evens.size()]; if (find(odds.get(i), evens, used, match)) { count++; } } System.out.println(count); } private static boolean find(int x, List<Integer> evens, boolean[] used, int[] match) { for (int i = 0; i < evens.size(); i++) { if (isPrime(x + evens.get(i)) && !used[i]) { used[i] = true; if (match[i] == -1 || find(match[i], evens, used, match)) { match[i] = x; return true; } } } return false; } private static boolean isPrime(int n) { if (n < 2) { return false; } for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; } } return true; } }