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

Задача . C. Урок физкультуры


В известной школе прошёл урок физкультуры. Как полагается, всех построили в шеренгу и попросили рассчитаться на «первый–\(k\)-й».

Как известно, расчёт на «первый–\(k\)-й» происходит следующим образом: первые \(k\) человек имеют номера \(1, 2, 3, \ldots, k\), следующие \(k - 2\) человек имеют номера \(k - 1, k - 2, \ldots, 2\), следующие \(k\) человек имеют номера \(1, 2, 3, \ldots, k\) и т.д. Таким образом, расчёт повторяется через каждые \(2k - 2\) позиции. Примеры расчёта приведены в разделе «Примечание».

Мальчик Вася постоянно всё забывает. Например, он забыл число \(k\), описанное выше. Но он помнит позицию, которую занимал в шеренге, а также какой номер он получил при расчёте. Помогите Васе понять, сколько натуральных чисел \(k\) подходят под данные ограничения.

Обратите внимание, что расчёт существует для всех и только для всех \(k > 1\). В частности, это означает, что не существует расчёта для \(k = 1\).

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

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

Единственная строка каждого набора входных данных содержит два целых числа \(n\) и \(x\) (\(1 \le x < n \le 10^9\)) — позиция Васи в шеренге и номер, который Вася получил при расчёте.

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

Для каждого набора входных данных выведите единственное целое число — количество различных \(k\), которые подходят под данные ограничения.

Можно доказать, что при данных ограничениях ответ является конечным.

Примечание

В первом наборе входных данных подходят \(k\) равные \(2, 3, 5, 6\).

Пример расчёта для этих \(k\):

\(k\) / №\(1\)\(2\)\(3\)\(4\)\(5\)\(6\)\(7\)\(8\)\(9\)\(10\)
\(2\)\(1\)\(2\)\(1\)\(2\)\(1\)\(2\)\(1\)\(2\)\(1\)\(2\)
\(3\)\(1\)\(2\)\(3\)\(2\)\(1\)\(2\)\(3\)\(2\)\(1\)\(2\)
\(5\)\(1\)\(2\)\(3\)\(4\)\(5\)\(4\)\(3\)\(2\)\(1\)\(2\)
\(6\)\(1\)\(2\)\(3\)\(4\)\(5\)\(6\)\(5\)\(4\)\(3\)\(2\)

Во втором наборе входных данных подходит \(k = 2\).


Примеры
Входные данныеВыходные данные
1 5
10 2
3 1
76 4
100 99
1000000000 500000000
4
1
9
0
1

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

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