I would like to find solutions in positive integers for diophantine equations having no variable squared. (And having some other limitations, but I will not consider them now.) Take, for example, $abcd-3bcd+2abc+ad-3=0$.
It is known that $xy+xz+yz=C$ has positive solutions except for few special values of $C$ and proof of this is quite complicated. So, this is hard question in general. But sometimes an answer might be easy to find or to prove that there is no solutions.
For our example, we see that $abcd > -3bcd+2abc+ad+3$ at least when $a,b,c,d > |2+1+3|=6$ -- i.e. $abcd$ "dominates" value. So we have at most $6^4$ new equations, just let every variable have values from 1 to 6. And for example when $b=2$ we have $2acd-6cd+4ac+ad-3=0$. Now $2acd$ dominates, and we can take recursive approach. Of course we should check that GCD of coefficients divides constant.
In C++ one can have recursive template. Then compiler might be able to optimize code, because every level of recursion would be own function with at least some values for loops being constants. And if we might have overflow, we can first look for solutions mod $2^{32}$ with normal unsigned ints, and only for those possible solutions check if they are real solutions with some arbitrary length interger library.
EDIT: Example happened to be "too easy". Here is another one: $abcd-35bcd-7acd-5abd-3abc+1$. Now I can't see how to factor parts like suggested on first answer.
But is there better approach? Or ready code for this?