Мне нужно решить для х в отношении конгруэнтности
xy + z ≡ 0 (mod k)
где y, z и k известны. (k не может быть простым.)
Есть ли лучший алгоритм, чем просто тестирование всех значений от 0 до k-1?
Я попытался использовать теорию чисел, и получил это:
xy ≡ -z (mod k)
x ≡ -z · (обратное (y)% k) (mod k)
но я получаю неправильные результаты в некоторых случаях. Например, если k = 728, x = 272, y = 344 и z = 344, то сохраняется исходное соотношение (потому что 272 · 344 + 344 = 129 · 728), а последнее - нет. Что я делаю не так?