Problem:
Prime Numbers

A prime number is a natural number which has exactly two distinct natural number divisors: 1 and itself. For example, the first four prime numbers are: 2, 3, 5 and 7.

Write a program which reads a list of N integers and prints the number of prime numbers in the list.

Input

The first line contains an integer N, the number of elements in the list.

N numbers are given in the following lines.

Output

Print the number of prime numbers in the given list.

Constraints

1 ≤ N ≤ 10000

2 ≤ an element of the list ≤ 108

Sample Input 1

5
2
3
4
5
6

Sample Output 1

3

Sample Input 2

11
7
8
9
10
11
12
13
14
15
16
17

Sample Output 2

4

Solution in C (judge verdict: Accepted)

/* 
 * File:   main.c
 * Author: s1252006
 *
 * Created on June 15, 2018, 11:19 AM
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int countPrime(int array[], int length) {
    int nop = 0;
    int isComposite;
    for (int i = 0; i < length; i++) {
        isComposite = 0;
        for (int j = 2; j <= sqrt(array[i]); j++) {
            if (array[i] % j == 0) {
                isComposite = 1;
                break;
            }
        }
//        printf("%d, isComposite: %d", array[i], isComposite);
        if (!isComposite) nop++;
    }
    return nop;
}


int main(int argc, char** argv) {
    int length;
    scanf("%d", &length);
    
    const int nxArray = length;
    int array[nxArray];
    for (int ixArray = 0; ixArray < nxArray; ixArray++)
        scanf("%d", &array[ixArray]);
//    for (int ixArray = 0; ixArray < nxArray; ixArray++)
//        printf("%d ", array[ixArray]);
    
    printf("%d\n", countPrime(array, nxArray));
    

    return (EXIT_SUCCESS);
}