Есть программа, но работает не во всех случаях…
Требуется написать программу, которая вычислит, сколько всего точек с целочисленными координатами принадлежат отрезку.
Формат ввода
Даны четыре целых числа – координаты концов отрезка (x1, y1) и (x2, y2). Каждая из координат не превышает по абсолютной величине значения 1000.
Формат вывода
Требуется вывести количество точек отрезка, имеющих целочисленные координаты.
Пример 1
Ввод
1 0 5 0
Вывод 5
Пример 2
Ввод
-1 -2 2 4
Вывод 4
Пример 3
Ввод
130 -693 73 -705
Вывод 4
мой код:
def gcd_rem_division(num1, num2):
while num1 != 0 and num2 != 0:
if num1 >= num2:
num1 %= num2
else:
num2 %= num1
return num1 or num2
x1,y1,x2,y2 = map(int, input().split())
if x1 == x2 and y1 == y2:
print(1)
elif x1 == x2 and y1 != y2:
print(abs(y2-y1)+1)
elif y1 == y2 and x1 != x2:
print(abs(x2-x1)+1)
else:
if x1 > x2:
x1,x2 = x2,x1t
print(gcd_rem_division(x2 - x1, y2 - y1) + 1)