Найдите M, для которых числа A, B, C образуют AP, если любое из них делится на M

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

Даны три положительных целых числа A , B и C , задача состоит в том, чтобы выяснить, что, если мы разделим любое из них на любое целое число M(m>0 ), могут ли они образовать AP (арифметическую прогрессию) в том же заданном порядке . . Если возможно несколько значений, выведите их все, а если ни одно из возможных значений, выведите -1.

Примеры:

Input:  A = 25, B = 10, C = 15
Output:  5
Explanation: If A(25) is divided by 5 then the three integers are 5, 10, 15 which form an A.P
with common difference 5.

Input:  A = 18, B = 4, C = 2
Output:  3.
Explanation: If A(18) is divided by 3 then the three integers are 6, 4, 2 which form an A.P
with common difference -2.

Input:  A = 7, B = 11, C = 13
Output:  -1
Explanation: It can be proved that their exists no positive integer which on dividing with 
any one of  the three numbers can form an A.P.

Подход:

Три числа A, B и C находятся в AP, если:

B – A = C – B = d

Here, 
A, B, and C are the three numbers
d is the common difference

Используя приведенное выше свойство общей разности AP, можно получить три формулы для трех случаев:

  • Когда A делится на целое число m1-

For A / m1, B, C  to form an A.P., we have 

B – A / m1 = C – B

Thus, m1 = a / (2 * B – C)

  • Когда B делится на целое число m2-

For A, B / m2, C  to form an A.P., we have 

B / m2 – A = C – B / m2

Thus, m2 = 2 * B/ (C + A)

  • Когда C делится на целое число m3-

For A, B, C / m3  to form an A.P., we have 

B – A = C / m3 – B

Thus, m3 = C / (2 * B – A)

  • Теперь у нас есть возможные значения M для каждого случая, затем проверьте каждое из трех значений, если какое-либо из них является положительным целым числом, то это значение является требуемым ответом.
  • Если такого возможного значения не существует, выведите -1.

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


Сложность времени: О(1)
Вспомогательное пространство: О(1)

РЕКОМЕНДУЕМЫЕ СТАТЬИ