#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>

#define fo(i,j,l) for(int i=j;i<=l;++i)
#define fd(i,j,l) for(int i=j;i>=l;--i)

using namespace std;
typedef long long ll;
const ll N=22e4;

int a[N];
int bz[N];
int n,ans;

int main()
{
	scanf("%d",&n);
	fo(i,1,n)scanf("%d",&a[i]);
	sort(a+1,a+n+1);
	fd(l,30,1){
		int k=1<<l;
		int kt=1;
		fd(i,n,1)if(!bz[i]){
			while(kt<i&&(bz[kt]||a[kt]+a[i]<k))++kt;
			if(kt==i)break;
			if(a[kt]+a[i]==k){
				bz[kt]=bz[i]=1;
				++ans;
			}
		}
	}
	cout<<ans;
}