import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    }

    public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    }

    public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    }
} Main public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    } main {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    } Scanner in = new Scanner(System.in); in new Scanner(System.in) int n = in.nextInt(); n in.nextInt() in.nextInt in int[] num = new int[n]; num new int[n] n int count = 0; count 0 for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        } {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        } num[i] = in.nextInt() num[i] num i in.nextInt() in.nextInt in if (check(num[i])) count++; check(num[i]) check num[i] num i count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    } check {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    } if (num == 2 || num == 3) return true;  // 两个较小的数另外处理 num == 2 || num == 3 num == 2 num 2 num == 3 num 3 return true;  // 两个较小的数另外处理 true if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数 num % 6 != 1 && num % 6 != 5 num % 6 != 1 num % 6 num 6 1 num % 6 != 5 num % 6 num 6 5 return false;  // 不在6的倍数两侧的一定不是质数 false int tmp = (int) Math.sqrt(num); tmp (int) Math.sqrt(num) Math.sqrt Math num for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        } int i = 5; int i = 5; i 5 i <= tmp i tmp i+=6 i+=6 i 6 { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        } { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        } if(num % i ==0 || num%(i+2) == 0)
                return false; num % i ==0 || num%(i+2) == 0 num % i ==0 num % i num i 0 num%(i+2) == 0 num%(i+2) num (i+2) i 2 0 return false; false return true; true int num num public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    }

    public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    }
} public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    }

    public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            num[i] = in.nextInt();
            if (check(num[i])) count++;
        }
        System.out.println(count);
    }

    public static boolean check(int num) {
        if (num == 2 || num == 3) return true;  // 两个较小的数另外处理
        if (num % 6 != 1 && num % 6 != 5) return false;  // 不在6的倍数两侧的一定不是质数
        int tmp = (int) Math.sqrt(num);
        for(int i = 5; i <= tmp; i+=6) { // 在6的倍数两侧的也可能不是质数
            if(num % i ==0 || num%(i+2) == 0)
                return false;
        }
        // 排除所有，剩余的是质数
        return true;
    }
}
