# ALDS_1_C.
from math import sqrt, floor

def intinput():
    a = input().split()
    for i in range(len(a)):
        a[i] = int(a[i])
    return a

def get_prime():
    P = []
    P.append(2); P.append(3); P.append(5); P.append(7)
    # まず100までの素数を作って、それから10000まで行く。
    # 100までの合成数は必ず2, 3, 5, 7のどれかで割れる。
    for n in range(8, 101):
        is_prime = True
        for i in range(4):
            if n % P[i] == 0: is_prime = False; break
        if is_prime: P.append(n)
    for n in range(101, 10001):
        is_prime = True
        limit = floor(sqrt(n))
        for i in range(len(P)):
            if n % P[i] == 0: is_prime = False; break
            if P[i] > limit: break
        if is_prime: P.append(n)
    return P

def main():
    # 10000までの素数のリスト作って、
    # 平方根までの素数で割っていった方が早い。多分。
    primes = get_prime()
    n = int(input())
    data = []
    for i in range(n): data.append(int(input()))
    count = 0
    for i in range(n):
        limit = floor(sqrt(data[i]))
        is_prime = True
        for p in primes:
            if data[i] % p == 0: is_prime = False; break
            if p > limit: break
        if is_prime: count += 1
    print(count)

if __name__ == "__main__":
    main()
