#include <iostream>
#include<map>
#include<vector>
#include<math.h>
using namespace std;
int main() {
long long n;
cin>>n;
map<long long ,long long>mp;
long long x;
while(n--)
{
cin>>x;
mp[x]++;
}
vector<long long>v;
for(long long i=0;i<=32;i++)
{
v
.push_back
((long long
)pow(2,i
)); }
long long c=0;
for(auto i:v)
{
for(auto k:mp)
{
if(mp
.find
(i
-k
.first
)!=mp
.end()) {
if(i-k.first==k.first &&mp[i-k.first]<=1){continue;}
c+=mp[i-k.first];
if(i-k.first!=k.first)
{
auto it=i-k.first;
mp.erase(it);
}
}
}
}
cout<<c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8bWF0aC5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpIHsKICAgIGxvbmcgbG9uZyBuOwogICAgY2luPj5uOwogICAgbWFwPGxvbmcgbG9uZyAsbG9uZyBsb25nPm1wOwogICAgbG9uZyBsb25nIHg7CiAgICB3aGlsZShuLS0pCiAgICB7CiAgICAgICAgY2luPj54OwogICAgICAgIG1wW3hdKys7CiAgICB9CiAgICB2ZWN0b3I8bG9uZyBsb25nPnY7CiAgICBmb3IobG9uZyBsb25nIGk9MDtpPD0zMjtpKyspCiAgICB7CiAgICAgICAgdi5wdXNoX2JhY2soKGxvbmcgbG9uZyApcG93KDIsaSkpOwogICAgfQogICAgbG9uZyBsb25nIGM9MDsKIAogCiAgICAgICAgICAgIGZvcihhdXRvIGk6dikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGF1dG8gazptcCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgaWYobXAuZmluZChpLWsuZmlyc3QpIT1tcC5lbmQoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoaS1rLmZpcnN0PT1rLmZpcnN0ICYmbXBbaS1rLmZpcnN0XTw9MSl7Y29udGludWU7fQogICAgICAgICAgICAgICAgYys9bXBbaS1rLmZpcnN0XTsKICAgICAgICAgICAgICAgIGlmKGktay5maXJzdCE9ay5maXJzdCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhdXRvIGl0PWktay5maXJzdDsKICAgICAgICAgICAgICAgICAgICBtcC5lcmFzZShpdCk7CiAKICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY291dDw8YzsKICAgIHJldHVybiAwOwp9