Если тебе нужно найти все решения уравнения при которых a!= m^2 и b != n^2, то примерно что-то такое:
Имеем систему:
a*n^2 = m^2*b
a != m^2
b != n^2
Первое уравнение решается если a = (m^2*b)/n^2, где n != 0
В данном случае у нас есть функция, которая определяет все решения этого первого уравнения
Чтобы из этого множества решений первого уравнения выделить только лишь решения, которые являются решениями исходной системы уравнений, мы должны ввести условие, что b/n^2 != 1, где n != 0
Следовательно b != n^2, где n != 0
Для простоты сначала найдём все решения при которых a != 0, b != 0, n^2 != 0, m^2 != 0
Тогда при b > 0 и n != +-sqrt(b), которое не равно 0, и при любом m != 0, имеется такое a = (m^2*b)/n^2
При b < 0 и n - любое число не равное 0, и при любом m != 0, имеется такое a = (m^2*b)/n^2
Теперь ищем решения при которых a и/или b и/или n^2 и/или m^2 = 0
Имеется 2 случая.
Первый случай когда n = 0 и m = 0. В этом случае a - любое число отличное отличное от 0, b - любое число отличное от 0.
Второй случай когда a = 0 и b = 0. В этом случае n - любое число отличное от 0, m - любое число отличное от 0.
В итоге все исчерпывающие варианты выглядят так:
( b > 0; n != +-sqrt(b) != 0; m - любое число != 0; a = (m^2*b)/n^2 )
( b < 0; n - любое число != 0; m - любое число != 0; a = (m^2*b)/n^2 )
( n = 0; m = 0; a - любое число != 0; b - любое число != 0 )
( b = 0; a = 0; n - любое число != 0; m - любое число != 0 )