Задача №115141. Урок физкультуры
В известной школе прошёл урок физкультуры. Как полагается, всех построили в шеренгу и попросили рассчитаться на «первый–\(k\)-й», где \(k > 1\).
Как известно, расчёт на «первый–\(k\)-й» происходит следующим образом: первые \(k\) человек имеют номера \(1, 2, 3, \ldots, k\), следующие \(k - 1\) человек имеют номера \(k - 1, k - 2, \ldots, 1\), следующие \(k - 1\) человек имеют номера \(2, 3, \ldots, k\) и т.д. Таким образом, расчёт повторяется через каждые \(2k - 2\) позиции. Примеры расчёта приведены в разделе «Замечание».
Мальчик Вася постоянно всё забывает. Например, он забыл число \(k\), описанное выше. Но он помнит позицию, которую занимал в шеренге, а также какой номер он получил при расчёте. Помогите Васе понять, сколько натуральных чисел \(k\) подходят под данные ограничения.
Обратите внимание, что не существует расчёта для \(k = 1\).
Первая строка содержит одно целое число \(n\) (\(2 \leq n \leq 10^9\)) — позиция Васи в ряду в нумерации, начинающейся с \(1\).
Вторая строка содержит одно целое число \(x\) (\(1 \leq x < n\)) — номер, который Вася получил при расчёте.
Выведите единственное целое число — количество различных \(k > 1\), которые подходят под данные ограничения.
Можно доказать, что при данных ограничениях ответ является конечным.
В данной задаче \(20\) тестов, помимо тестов из условия, каждый из них оценивается в \(5\) баллов. Результаты работы ваших решений на всех тестах будут доступны сразу во время соревнования.
Решения, корректно работающие при \(n \leq 100\), наберут не менее \(30\) баллов.
Решения, корректно работающие при \(n \leq 100\,000\), наберут не менее \(60\) баллов.
В первом примере подходят \(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\) |
10 2
4
76 4
9