#include <bits/stdc++.h>
int fa[10000000 + 10];
long long gcd(long long a, long long b) { return (a == 0) ? b : gcd(b % a, a); }
int getfa(int a) { return (fa[a] == a) ? a : fa[a] = getfa(fa[a]); }
int n;
void m(long long a, long long b) {
  if (fa[a] == 0 || fa[b] == 0) return;
  int faa = getfa(a), fbb = getfa(b);
  if (faa == fbb) return;
  fa[faa] = fbb;
  n--;
}
int main() {
  scanf("%d", &n);
  int mx = 0;
  for (int i = 0; i < n; i++) {
    int tmp;
    scanf("%d", &tmp);
    fa[tmp] = tmp;
    if (mx < tmp) mx = tmp;
  }
  for (long long i = 2; i * i <= 2 * mx; i += 2)
    for (long long j = i + 1, a = i / 2 * (j + 1), b = j, c = i / 2 * i + j;
         a <= mx && b <= mx; j += 2, a += i, b += j, c += j) {
      if (gcd(a, b) > 1) continue;
      m(a, b);
      if (c <= mx) {
        m(b, c);
        m(c, a);
      }
    }
  printf("%d\n", n);
}
