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 Rust (judge verdict: Accepted)


use std::io::{self,BufRead};

fn main() {
    let mut s = String::new();
    let stdin = io::stdin();

    let _ = stdin.read_line(&mut s);

    let n:usize = s.trim().parse().unwrap();

    s.clear();

//    let _ = stdin.lock().lines(&mut s);
    let nums = stdin.lock().lines()
        .take(n)
        .map(|s| s.ok().unwrap().trim().parse().unwrap_or(0));

    let answer = nums
        .filter(|&x| {
            let m = f64::sqrt(x as f64).ceil() as u64;
            //println!("m {}", m);
            x == 2 ||( 2..(m+1)).all(|y| x % y != 0)
        })
        .count();

    println!("{}",answer);
}