Как способ сократить перебор, это понятно. Но в общем случае задача существенного сокращения перебора (скажем, на порядок) кажется очень сложной.
Тем не менее, приведу один оптимистический пример. Рассмотрим уравнение
где
--- целочисленный параметр. Это уравнение имеет "максимальное по порядку" решение
, для которого
. Стандартный алгоритм решения (наша старая идея "зажать между двумя квадратами") приводит к перебору
значений
, для каждого из которых нужно вычислить правую часть уравнения и затем выяснить, будет ли она точным квадратом. Казалось бы, наличие "большого" решения подталкивает думать, что существенно меньшим числом тестов на "быть точным квадратом" и не обойтись. Но это не так: оказывается, есть способ решить уравнение
, проделав всего
таких тестов, т.е. на порядок меньше. Разницу можно хорошо почувствовать уже при
.