LCM大战XOR
题号:NC268244
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述


春节马上就要到了,小苯要去朋友们家里拜年咯。他想送给氧气少年Kevin一个礼物,但他不知道送什么好,但好在他知道Kevin最喜欢的东西是什么,于是他将Kevin最喜欢的东西藏在了本题中,请你帮帮Kevin解答本问题吧。

小苯有一个长为 n 的数组 a,他想知道有多少个 (i,j) \ (1 \leq i, j \leq n) 满足  lcm(a_i, a_j) = a_i \oplus a_j

输入描述:

输入包含两行。
第一行一个正整数 n\ (1 \leq n \leq 2 \times10^5),表示数组 a 的长度。
第二行 n 个整数 a_i (0 \leq a_i \leq 10^9),表示数组 a 的元素。

输出描述:

输出一行一个整数表示答案。
示例1

输入

复制
2
114514 1919810

输出

复制
0

说明

显然不存在这样的下标对。

备注:

lcm(x, y) 表示 xy 的最小公倍数,例如 lcm(3, 4)=12。(特别的,0 和任何数的最小公倍数都是0。)
\oplus 表示按位异或操作,对应键盘上的 ^ 键。