НОД проти XOR#11107

НОД проти XOR

1 секунда
128 мегабайтів
Легка

Оптимізація - це весело! Особливо, коли вона зовсім не обов'язкова.

Відомо, що бітові операції, такі як побітове виключне АБО, виконуються швидше, ніж рекурсивні функції, наприклад, обчислення найбільшого спільного дільника (НСД). Щоб вразити керівників стажувань, ви вирішили замінити у флагманському проєкті компанії всі виклики \gcd(x, y) на значно швидші \text{xor}(x, y).

Це сталося вчора, у п'ятницю. Тепер ви починаєте замислюватися, чи не варто було протестувати новий код перед його розгортанням у робочому середовищі... Що ж, краще пізно, ніж ніколи. У заданій послідовності чисел a_1, \ldots, a_n визначте, скільки пар (1 \le i < j \le n) задовольняють рівність \gcd(a_i, a_j) = \text{xor}(a_i, a_j). Нагадаємо, що \gcd(x, y) - це найбільший спільний дільник і , а \text{xor}(x, y) - це операція побітового виключного АБО і .

Вхідні дані

Перший рядок містить кількість тестів (1 \le z \le 20). Далі йдуть описи тестів.

Перший рядок кожного тесту містить ціле число (1 \le n \le 2\,000\,000). Другий рядок містить цілі числа a_1, a_2, \ldots, a_n, всі додатні і не перевищують 10^6.

Сумарна довжина всіх послідовностей по всіх тестах не перевищує 3 \cdot 10^7.

Вихідні дані

Для кожного набору вхідних даних виведіть одне ціле число: кількість пар (a_i, a_j) з i < j, що задовольняють умову \gcd(a_i, a_j) = \text{xor}(a_i, a_j).

Приклади

Приклад 1

Loading
Loading