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

Задача . F. Вам заданы буквы...


У вас есть \(a\) заглавных латинских букв 'A' и \(b\) латинских букв 'B'.

Период строки — это такое наименьшее целое \(k\), что \(s_i = s_{i~mod~k}\)\(0\)-индексации) для всех \(i\). Заметим, что это подразумевает, что \(k\) не обязательно делит \(a+b = |s|\).

Например, период строки «ABAABAA» равен \(3\), период «AAAA» равен \(1\), а период «AABBB» равен \(5\).

Найдите количество различных периодов всех возможных строк из \(a\) букв 'A' и \(b\) букв 'B'.

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

В первой строке записаны два целых числа \(a\) и \(b\) (\(1 \le a, b \le 10^9\)) — количество букв 'A' и 'B', соответственно.

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

Выведите количество различных периодов всех возможных строк из \(a\) букв 'A' и \(b\) букв 'B'.

Примечание

Все возможные периоды для первого примера:

  • \(3\) «BBABBA»
  • \(4\) «BBAABB»
  • \(5\) «BBBAAB»
  • \(6\) «AABBBB»

Все возможные периоды для второго примера:

  • \(3\) «BAABAABA»
  • \(5\) «BAABABAA»
  • \(6\) «BABAAABA»
  • \(7\) «BAABAAAB»
  • \(8\) «AAAAABBB»

Обратите внимание, что это не единственные возможные строки для данных периодов.


Примеры
Входные данныеВыходные данные
1 2 4
4
2 5 3
5

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

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