


Линейные диофантовы уравнения и Python
Подскажите, пожалуйста, насчёт кода Python, который должен находить 2 неизвестных в линейном диофантовом уравнении. print('Нахождение одного из решний диофантовых уравнений
Первая половина понятна. Я запутался в цикле for и if. Почему именно in range(a)? Может есть какое-то свойство? Почему именно так находятся корни в if? Объясните, пожалуйста.
print('Уравнения вида ax+by=c')
print('Введите переменные a, b, c')
def gcd(n, m):
while n != 0 and m != 0:
if n >= m:
n %= m
else:
m %= n
return n or m
a = int(input("a = "))
b = int(input("b = "))
c = int(input("c = "))
nod = gcd(a, b)
if c % nod:
print('Нет решений')
else:
for i in range(a):
if (c - b * i) % a == 0:
y = i
x = ( c - b * y ) // a
print('Ответ:')
print('x = ', x, 'y = ', y)
break
это банальный перебор.
очень неэкономичный метод решения.
особенно если уравнение - более-менее серьёзное, например:
4150390625x + 9034497y = 285212672
Здесь никто не ответит, для вас есть специальные категории
- https://otvet.mail.ru/homework/ или - https://otvet.mail.ru/education/
С , не ясное , а упало , b пропало типа ясные , наверное