#include <bits/stdc++.h>
using namespace std;
long long extgcd(long long a, long long b, long long& x, long long& y) {
  long long d = a;
  if (b != 0) {
    d = extgcd(b, a % b, y, x);
    y -= (a / b) * x;
  } else
    x = 1, y = 0;
  return d;
}
long long mod_inv(long long a, long long m) {
  long long x, y;
  extgcd(a, m, x, y);
  return (m + x % m) % m;
}
long long modmultiply(long long a, long long b, long long c) {
  long long x = 0, y = a % c;
  while (b > 0) {
    if (b % 2 == 1) x = (x + y) % c;
    y = (y * 2) % c;
    b /= 2;
  }
  return x % c;
}
long long modpow(long long x, long long y, long long mod) {
  long long ret = 1;
  while (y) {
    if (y & 1) ret = modmultiply(ret, x, mod);
    x = modmultiply(x, x, mod);
    y >>= 1;
  }
  return ret;
}
bool MillerRabin(long long v) {
  if (v == 2) return true;
  if (v < 2 || !(v & 1LL)) return false;
  srand((unsigned int)time(NULL));
  long long d = v - 1;
  while ((d & 1LL) == 0) d >>= 1LL;
  for (int i = 0; i < 40; ++i) {
    long long a = rand() % (v - 2) + 1LL;
    long long t = d;
    long long y = modpow(a, t, v);
    while (t != v - 1LL && y != 1LL && y != v - 1LL) {
      y = (y * y) % v;
      t <<= 1LL;
    }
    if (y != v - 1LL && (t & 1LL) == 0) return false;
  }
  return true;
}
int main() {
  int n, v, cnt = 0;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> v;
    cnt += MillerRabin(v);
  }
  cout << cnt << endl;
  return 0;
}
