1)Отрезок На клетчатой бумаге нарисовали отрезок, соединяющий точки с координатами (a,b) и (c,d). Через сколько клеток проходит этот отрезок (считается, что отрезок проходит через клетку, если он проходит через её внутренность, если же он проходит только через вершину или по границе клетки, считается, что он не проходит через клетку)? Входные данные Программа получает на вход четыре целых числа, записанных в одной строке: a,b,c,d. Все числа по модулю не превосходят 106. Выходные данные Выведите ответ на задачу. Примеры Ввод 0 0 6 4 Вывод 8 2)
Диофантово уравнение
Даны натуральные числа a, b, c. Если уравнение ax+by=c имеет решения в целых числах, то выберите то решение, в котором число x имеет наименьшее неотрицательное значение, и выведите это решение (два числа x и y через один пробел). Если решения не существует, то выведите −1.

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

Входные данные — натуральные числа a, b и c. Числа заданы на одной строке через пробел и не превышают 109.

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

Выведите ответ на задачу.

Примеры
Ввод
1 2 3
2 2 2
Вывод
1 1
0 1
3)
Степень
Для того чтобы проверить, как её ученики умеют считать, Мария Ивановна каждый год задаёт им на дом одну и ту же задачу — для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. От года к году и от ученика к ученику меняется только число A.

Вы решили будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу.

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

Во входном файле содержится единственное число A (1≤A≤109 — на всякий случай; вдруг Мария Ивановна задаст большое число, чтобы «завалить» кого-нибудь…).

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

В выходной файл вывести единственное число N.

Примеры
Ввод
8
1
Вывод
4
1

Shinesss7 Shinesss7    1   11.06.2020 16:36    87

Ответы
LaGGeRiSTiK LaGGeRiSTiK  19.08.2020 01:45

отрезок

x1, y1,x2,y2 = map(int, input().split())

def nod(a, b):

--if b > 0:

return nod(b, a%b)

--else:

return a

a = abs(x1 - x2)

b = abs(y1 - y2)

d = nod(a, b)

print(d * (a//d + b//d - 1))

уравнение

def gcd(a, b):

while a != 0 and b != 0:

if a < b:

b = b % a

else:

a = a % b

return a + b

 def qwer(a, b):  

x = 1  

x1 = 0

y = 0

y1 = 1

while b != 0:

q = a // b

r = a % b

x2 = x - q * x1

y2 = y - q * y1

a, b = b, r

x, x1 = x1, x2

y, y1 = y1, y2

return str(a), str(x), str(y)

a, b, c = list(map(int, input().split()))

x, y = 0, 0

gcds = 0

if c % gcd(a, b) != 0:

print('-1')

else:

gcds, x, y = map(int, qwer(a, b))

x *= c // gcds

y *= c // gcds

q = x // (b // gcds)

x %= b // gcds

y += a // gcds * q

print(x, y)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика