C. Арифметическая прогрессия

Имя входного файла: progression.in
Имя выходного файла: progression.out
Ограничение по времени: 1 s
Ограничение по памяти: 64 megabytes

Однажды на уроке математики ученики познакомились с понятием арифметической прогрессии. Перед переменой учительница написала на доске некоторую арифметическую прогрессию, то есть последовательность, где

  1. a1, a2, …, an – элементы прогрессии,
  2. ai - ai-1 = d для всех 1 < i ≤ n,
  3. d, a1, a2, …, an – целые числа.
  4. d называется разностью арифметической прогрессии.

Васе на перемене нечем было заняться, поэтому пока учительница отсутствовала в классе, он решил стереть числа прогрессии, в результате чего остались только два числа. Когда учительница вернулась и увидела учинённое безобразие, то решила проучить Василия и заставила определить, сколько существует различных разностей d, которые могли бы образовывать исходную прогрессию. Стоит отметить, что никто не запомнил, на каких местах располагались оставшиеся числа в изначальной последовательности.

Помогите Васе посчитать число способов выбрать разность целочисленной арифметической прогрессии, в которой известны только два её члена.

Формат входного файла

В единственной строке файла содержатся два целых числа a, b (1 ≤ a, b ≤ 109).

Формат выходного файла

Выведите число способов выбрать разность прогрессии.

Пример:

progression.inprogression.out
2 4 2
1 5 3

В первом примере на доске изначально могли быть написаны прогрессии с разностями 1 и 2. Например, это могла быть последовательность 1, 2, 3, 4, 5, в которой Вася стёр 1, 3, 5 или 0, 2, 4, 6, в которой, удалили 0 и 6. Следует отметить, что разность -2 использована быть не может, так как в оставшейся последовательности известен относительный порядок чисел, то есть 2 идет в прогрессии раньше чем 4.

Во втором примере разностью прогрессии могло быть число 1, 2 или 4.


Источник: VII сетевая районная олимпиада Республики Карелия по информатике

Обсудить       Отправить решение