UOJ Logo

NOI.AC

1S 256MB

#123. A

统计

【题目描述】

给定一个长度为 n 的正整数序列 a[i],计算出有多少个 $i < j$ 的数对,$a[i]+a[j]$ 为二的次幂, 也就是说存在一个正整数 $x$ 满足 $$a[i]+a[j]==2^x$$

【输入格式】

输入文件 A.in。

第一行一个整数 n。

第二行 $n$ 个整数,其中第 $i$ 个整数为 $a[i]$。

【输出格式】

输出文件 A.out。

一行一个整数表示数对的数量。

【样例输入 1】

4
7 3 2 1

【样例输出 1】

2 

【样例输入 2】

3 
1 1 1

【样例输出 2】

3 

【数据范围】

对于 20% 数据 $n<=1000$。

对于 50% 数据 $n \le 50000,0 \le a[i] \le 10^9$。

对于 100% 数据 $n \le 1000000,0 \le a[i] \le 10^9$。