#267. 完全平方数

完全平方数

完全平方数

题目描述

原题有对应的选择、判断题,见 https://ti.luogu.com.cn/problemset/1143。

小杨同学有一个包含 nn 个非负整数的序列 AA,他想要知道其中有多少对下标组合 i,j\langle i,j \rangle1i<jn1 \le i < j \le n),使得 Ai+AjA_i + A_j 是完全平方数。

如果 xx 是完全平方数,则存在非负整数 yy 使得 y×y=xy \times y = x

输入格式

第一行一个非负整数 nn,表示非负整数个数。
第二行包含 nn 个非负整数 A1,A2,,AnA_1, A_2, \dots, A_n,表示序列 AA 包含的非负整数。

输出格式

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

样例输入

5
1 4 3 3 5

样例输出

3

样例解释

对于样例,序列为 [1,4,3,3,5][1, 4, 3, 3, 5],共有 55 个数。满足 Ai+AjA_i + A_j 是完全平方数的下标组合有:

  • 1,3\langle 1, 3 \rangle1+3=4=2×21 + 3 = 4 = 2 \times 2,是完全平方数。
  • 1,4\langle 1, 4 \rangle1+3=41 + 3 = 4,同样是完全平方数(注意序列中有两个 33 位于不同位置)。
  • 2,5\langle 2, 5 \rangle4+5=9=3×34 + 5 = 9 = 3 \times 3,是完全平方数。

其余组合的和均非完全平方数,因此答案为 33

数据范围

对全部的测试数据,保证 1n10001 \le n \le 10000Ai1050 \le A_i \le 10^5