package main

import(
 "fmt"
 "io"     
) 

func isPrime(num int) bool {
    
    if num == 1 {
        return false
    }
    
    for i := 2; i*i <= num; i++{
        if num%i == 0 {
            return false
        }
    }
    return true
}


func match(odd int, evens []int, visited map[int]int, suited map[int]int) bool {
    for _, even := range evens{
        if isPrime(odd + even) && visited[even] == 0 {
            visited[even] = 1
            if suited[even] == 0 || match(suited[even], evens, visited, suited) {
                suited[even] = odd
                return true
            }
        }
    }
    return false
}


func main(){
    for{
        var n int
        var num int
        var odds []int
        var evens []int
        
        c, err := fmt.Scanf("%d\n", &n)
        if c==0 || err==io.EOF{
            break
        }
        
        //分奇数和偶数
        for i:=0; i<n; i++{
            fmt.Scanf("%d", &num)
            if num % 2 == 0{
                evens = append(evens, num)
            }else{
                odds = append(odds, num)
            }
        }
        
        var suited map[int]int = make(map[int]int)
        var res int
        for i:=0; i<len(odds); i++{
            
            var visited map[int]int = make(map[int]int)
            
            ok := match(odds[i], evens, visited, suited)
            if ok {
                res++
            }
        }
        
        fmt.Println(res)
    }
}