Подсчитайте возможные значения K, такие что A%K = B%K

Опубликовано: 20 Сентября, 2022

Даны два целых числа A и B , задача состоит в том, чтобы подсчитать возможные значения K такие, что A%K = B%K . Если счетчик бесконечен, выведите -1 .

Примеры:

Input: A = 2, B = 4
Output: 2
Explanation: The set of all possible values of K is {1, 2}. 
As 2%1 = 4%1 = 0 and 2%2 = 4%2 = 0.

Input: A = 5, B = 5
Output: -1
Explanation: There are infinite values of K as all possible integer value of K satisfies the given condition.

Подход: Данную задачу можно решить, используя следующее наблюдение, что все значения A и B можно разделить на следующие два случая:

  • Случай, когда А = В. В таких случаях допустимым ответом является все возможное целочисленное значение K. Следовательно, значение искомого счетчика бесконечно.
  • Случай, когда А > В. В таких случаях можно заметить, что значение K действительно, если K делит (A – B) . Для случаев с B > A просто поменяйте местами значения A и B.

Поэтому вычислите все возможные значения K так, чтобы оно полностью делило (A – B) , что и является требуемым значением.

Ниже приведена реализация вышеуказанного подхода:


Временная сложность: O(√(A – B))
Вспомогательное пространство: O(1)