Task 67. Количество точек
UniLecsЗадача: дан отрезок, начало и конец отрезка заданы целочиселнными координатами. Нужно подсчитать количество точек отрезка, ктр имеют целочисленные координаты, включая начало и конец.
Входные данные:
X1, Y1, X2, Y2 - координаты начала и конца отрезка, значения по модулю не превышают 10000.
Вывод: кол-во точек отрезка с целочисленными координатами, включая начало и конец.
Пример:
(2, 8), (10, 0)
Вывод: 9

Идея: для решения этой задачи достаточно вычислить НОД - наибольший общий делитель, а именно количество целочиселнных точек для отрезка (X1, Y2), (X2, Y2) будет равно:
1 + НОД(abs(X2 - X1), abs(Y2 - Y1))
Для примера разберем отрезок из условия:
1 + НОД(abs(10 - 2), abs(0 - 8)) = 1 + НОД(8, 8) = 1 + 8 = 9
Реализация:

https://gist.github.com/unilecs/cac5cae96e7cb4bfe89df809b5b2fe22
Тест: