CF1884D Counting Rhyme

题目描述

给定一个整数数组 $a_1, a_2, \ldots, a_n$。 如果一对整数 $(i, j)$ 满足 $1 \le i < j \le n$,并且不存在一个整数 $k$($1 \le k \le n$),使得 $a_i$ 能被 $a_k$ 整除且 $a_j$ 也能被 $a_k$ 整除,则称这对 $(i, j)$ 是“好对”。 请你计算“好对”的数量。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 2 \cdot 10^4$),表示测试数据组数。 每组测试数据的第一行包含一个整数 $n$($1 \le n \le 10^6$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le n$)。 保证所有测试数据中 $n$ 的总和不超过 $10^6$。

输出格式

对于每组测试数据,输出“好对”的数量。

说明/提示

在第一个测试用例中,没有“好对”。 在第二个测试用例中,所有的“好对”为:$(1, 2)$、$(2, 3)$ 和 $(2, 4)$。 由 ChatGPT 4.1 翻译