#include <bits/stdc++.h>
using namespace std;
int n, procurado, vezesQueAparece, retirados;
int nums[12 * 10123], v;
bool encontrouComplemeto;
map<int, int> valorQuant;
int quadrados[] = {
    1,         2,         4,         8,        16,       32,       64,
    128,       256,       512,       1024,     2048,     4096,     8192,
    16384,     32768,     65536,     131072,   262144,   524288,   1048576,
    2097152,   4194304,   8388608,   16777216, 33554432, 67108864, 134217728,
    268435456, 536870912, 1073741824};
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> v;
    nums[i] = v;
    if (valorQuant.count(v) == 0) {
      valorQuant[v] = 1;
    } else
      valorQuant[v]++;
  }
  for (int i = 0; i < n; i++) {
    encontrouComplemeto = false;
    for (int j = 0; j < 31; j++) {
      procurado = quadrados[j] - nums[i];
      vezesQueAparece = valorQuant[procurado];
      if (procurado == nums[i] && vezesQueAparece > 1) {
        encontrouComplemeto = true;
        break;
      } else if (procurado != nums[i] && vezesQueAparece) {
        encontrouComplemeto = true;
        break;
      }
    }
    if (!encontrouComplemeto) retirados++;
  }
  cout << retirados << endl;
  return 0;
}
