#D0008. 满足条件的下标对

满足条件的下标对

题目描述

给定一个长度为 nn 的整数数列 a1,a2,,ana_1, a_2, \ldots, a_n,数列中的元素各不相同,数列下标从 11nn

你需要寻找数列中存在多少下标对 (i,j)(i,j) 满足 1i<jn1 \le i \lt j \le naiaj=i+ja_i \cdot a_j = i + j(即:元素的乘积等于下标和)。

输入格式

输入包含多组测试数据,输入的第一行包含一个整数 t(1t104)t(1 \le t \le 10^4),表示测试数据组数。

接下来每组测试数据的第一行包含一个整数 n(2n105)n(2 \le n \le 10^5),表述数列长度,第二行包含 nn 个整数 a1,a2,,an(1ai2n)a_1, a_2, \ldots, a_n(1 \le a_i \le 2 \cdot n),数据保证数列中的元素各不相同。

数据保证所有测试数据对应的 nn 之和不超过 21052 \cdot 10^5

输出格式

对于每组测试数据,输出一行,包含一个整数,表示满足条件的下标对的数量。

input

3
2
3 1
3
6 1 5
5
3 1 5 9 2

output

1
1
3

说明/提示

样例解释

  • 第1组测试数据:存在一组满足条件的下标对 (1,2)(1, 2)
  • 第2组测试数据:存在一组满足条件的下标对 (2,3)(2, 3)
  • 第3组测试数据:存在三组满足条件的下标对 (1,2)(1,2)(1,5)(1,5)(2,3)(2,3)

数据规模与约定

  • 对于 50%50\% 的数据,t10,n1000t \le 10, n \le 1000
  • 对于 100%100\% 的数据,1t104,1n105,1ai2n1 \le t \le 10^4, 1 \le n \le 10^5, 1 \le a_i \le 2 \cdot naia_i 各不相同,所有测试数据对应的 nn 之和不超过 21052 \cdot 10^5