Codeforces Round 924 (Div. 2) |
---|
Закончено |
В известной школе прошёл урок физкультуры. Как полагается, всех построили в шеренгу и попросили рассчитаться на «первый–$$$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$$$, которые подходят под данные ограничения.
Можно доказать, что при данных ограничениях ответ является конечным.
510 23 176 4100 991000000000 500000000
4 1 9 0 1
В первом наборе входных данных подходят $$$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$$$.
Название |
---|