Алгоритмически МБС для диофантового уравнения подобен следующей схеме:
1) решение полинома уравнения по малым модулям
2) эвристический выбор "удачного" модуля
3) эвристический выбор "удачного" решения, если их больше чем одно для выбранного модуля
4) соответствующая замена переменных; сокращение натурального фактора полинома, если есть
5) проверка, равен новый полином стартовому или нет; если равен, то конец алгоритма (решения у исходного уравнения нет), иначе возврат к пункту 1)
Если на 3-ем пункте не делать выбор, и, тем более, если не делать на 2-ом, то получается грандиозно ветвящееся дерево полиномов. Видимо поэтому МБС "приходит сам" в решение. Если всё-таки пытаться организовать перебор, то потенциально ветви могут отсекаться при "горизонтальном" повторении полиномов на 4-ом шаге, а также при "вертикальном" повторении на шагах
и
(
). Также ветвь сразу же отсекается при отсутствии решения по какому-то модулю на шаге
(простейший пример - полином с четными коэффициентами и нечетным свободным членом не имеет решения по модулю 2 и соответственно не имеет решения в целых числах). Есть мысли, как ещё можно делать отсечения в таком переборе?
Если изложенная схема не понятна, то её можно проиллюстрировать кодом.