Всем привет. Да, такая вот простая с виду задача - найти
при заданных целых положительных

(значения

тоже предполагаются целыми).
То, что её можно пытаться решать как задачу целочисленного линейного программирования (пусть и очень простую), понятно. Мне это показалось было стрельбой из пушки по воробьям, но попытавшись пойти напролом (см. ниже), я уже начал сомневаться...
Мой путь решения оказался таким. Во-первых,

и

можно считать взаимно простыми и найти

такие, что

. Пусть теперь

, тогда мы ищем
(значения

считаются целыми положительными). Далее, целые решения

сравнения

имеют вид
где

- произвольные целые, а выражения вида

обозначают наибольший общий делитель (вроде, не напортачил).
В итоге получается задача минимизации

при ограничении вида

. То есть (ещё одна, учитывая предыдущее) вариация алгоритма Евклида.
Вопрос напрашивается. Так и ломиться? Или назад в ЦЛП? Или, может, упростить можно...
P.S. Всякие граничные случаи я рассматривать не стал, и так текста многовато.