#B1478. 完全平方数

完全平方数

【题目描述】

给定一个包含 nn 个非负整数的序列 AA。

请统计满足 1≤i<j≤n1\le i<j\le n 且 Ai+AjA_i+A_j 是完全平方数的下标对 (i,j)(i,j) 数量。

如果一个非负整数 xx 可以表示为某个非负整数 yy 的平方,即 x=y2x=y^2,则称 xx 是完全平方数。

【输入描述】

第一行输入一个非负整数 nn。

第二行输入 nn 个非负整数 A1,A2,…,AnA_1,A_2,\ldots,A_n。

保证:

  • 1≤n≤1051\le n\le10^5;
  • 0≤Ai≤1050\le A_i\le10^5。

【输出描述】

输出一行一个整数,表示满足条件的下标对数量。

【样例 1】

【样例 1 输入】

5
1 4 3 3 5

【样例 1 输出】

3

【样例 1 解释】

满足条件的下标对为 (1,3)(1,3)、(1,4)(1,4) 和 (2,5)(2,5),对应的元素和分别为 4,4,94,4,9。

【样例 2】

【样例 2 输入】

4
0 1 3 6

【样例 2 输出】

3

【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 3 30 n≤100n\le100
4 ~ 6 Ai≤1000A_i\le1000
7 ~ 10 40 n≤105n\le10^5,Ai≤105A_i\le10^5