Олимпиадный тренинг

Задача . B2. Переворотная карта (сложная версия)


Две версии задачи — это разные задачи. Возможно, вы захотите прочитать обе версии. Вы можете делать взломы, только если обе версии задачи решены.

Вам даны два целых положительных числа \(n\) и \(m\).

Посчитайте количество упорядоченных пар \((a, b)\), удовлетворяющих следующим условиям:

  • \(1\le a\le n\), \(1\le b\le m\);
  • \(b \cdot \gcd(a,b)\) кратно \(a+b\).
Входные данные

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число \(t\) (\(1\le t\le 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(n\) и \(m\) (\(1\le n,m\le 2 \cdot 10^6\)).

Гарантируется, что сумма \(n\), а также сумма \(m\) по всем наборам входных данных не превосходят \(2 \cdot 10^6\).

Выходные данные

Для каждого набора входных данных выведите одно целое число — количество подходящих пар.

Примечание

В первом наборе входных данных ни одна пара не удовлетворяет условиям.

В четвертом наборе входных данных пары \((2,2),(3,6),(4,4),(6,3),(6,6),(8,8)\) удовлетворяют условиям.


Примеры
Входные данныеВыходные данные
1 6
1 1
2 3
3 5
10 8
100 1233
1000000 1145141
0
1
1
6
423
5933961

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя