How do I find the integer solutions that satisfy $xyz = 288$ and $xy + xz + yz = 144$? 
Find all integers $x$, $y$, and $z$ such that $$xyz = 288$$ and $$xy + xz + yz = 144\,.$$

I did this using brute force, where $$288 = 12 \times 24 = 12 \times 6 \times 4$$ and found that these set of integers satisfy the equation. How do I solve this without using brute force?
 A: Without loss of generality, suppose that $x\geq y\geq z$.  From the given system of Diophantine equations, we obtain an Egyptian fraction problem:
$$\frac{1}{x}+\frac{1}{y}+\frac{1}{z}=\frac{yz+zx+xy}{xyz}=\frac{144}{288}=\frac12\,.\tag{*}$$
Since $xyz=288>0$, the number of variables with negative values among $x$, $y$, and $z$ is either $0$ or $2$. We consider two cases.
Case I: $x>0>y\geq z$.  Let $u:=-y$ and $v:=-z$.  Then,
$$\frac{1}{x}-\frac1{u}-\frac1{v}=\frac{1}{2}\,.$$
Thus, $\dfrac{1}{x}>\dfrac12$, making $x<2$.  Therefore, $x=1$.  This implies $$yz=xyz=288$$ and $$y+z=x(y+z)=144-yz=144-288=-144\,.$$
Consequently, the polynomial
$$q(t):=t^2+144t+288$$
has two roots $y$ and $z$.  It is easily seen that $q(t)$ has no integer roots, so this case is invalid.
Case II: $x\geq y\geq z>0$.  Then,
$$\frac{3}{z}\geq \frac{1}{x}+\frac{1}{y}+\frac{1}{z}=\frac12\,.\tag{#}$$
This shows that $z\leq 6$.  Furthermore, it is clear that $z>2$.  Hence, there are four possible values of $z$, which are $3$, $4$, $5$, and $6$.

*

*If $z=6$, then by (#), we conclude that $x=6$ and $y=6$.  However, $xyz\neq 288$.  This subcase yields no solutions.


*If $z=5$, then this is impossible, as $xyz=288$ implies that $z$ divides $288$.  This subcase is eliminated.


*If $z=4$, then $$xy=\dfrac{288}{z}=\dfrac{288}{4}=72$$ and $$x+y=\dfrac{144-xy}{z}=\dfrac{144-72}{4}=18\,.$$  Thus, $t=x$ and $t=y$ are the roots of the quadratic polynomial $$t^2-18t+72=(t-6)(t-12)\,.$$  This means $x=12$ and $y=6$.


*If $z=3$, then  $$xy=\dfrac{288}{z}=\dfrac{288}{3}=96$$ and $$x+y=\dfrac{144-xy}{z}=\frac{144-96}{3}=16\,.$$  Thus, $t=x$ and $t=y$ are the roots of the quadratic polynomial $t^2-16t+96$, but this polynomial has no real roots.
In conclusion, all integer solutions $(x,y,z)$ to the required system of Diophantine equations are permutations of $(4,6,12)$.
Remark. Note that all $(x,y,z)\in\mathbb{Z}^3$ that satisfy (*) are permutations of the triples listed below.
$$(1,-3,-6)\,,\,\,(1,-4,-4)\,,\,\,(k,2,-k)\,,\,\,(4,3,-12)\,,\,\,(5,3,-30)\,,$$
$$(6,6,6)\,,\,\,(10,5,5)\,,\,\,(20,5,4)\,,\,\,(12,6,4)\,,\,\,(8,8,4)\,,$$
$$(42,7,3)\,,\,\,(24,8,3)\,,\,\,(18,9,3)\,,\text{ and }(12,12,3)\,,$$
where $k$ is any positive integer.
A: We have $288 = 2^53^2.$  Let $x=2^a3^r,$ $y=2^b3^s,$ and $z=2^c3^t$.  Then $a+b+c = 5$ and $r+s+t=2$.  Since $r,s,$ and $t$ are non-negative integers, one of them must be $0$, say $t=0$.  From the equation
$$xy+xz+yz = 144,$$
we see that if a prime number divides any of the variables, it must divide at least one of the others.  This forces $r =s=1$ and we must have
$$x=2^a3, y=2^b3, z=2^c.$$
Similarly, if one of the variables is divisible by $8$, then the product of the other two variables is also divisible by $8$, but then $a+b+c\geq 6$, which is too big.  This forces $1\leq a,b,c \leq 2.$
So either $c=1$ or $c=2.$  If $c=1$, then $a=b=2$ and $x=y=12$ and $z=2$, which doesn't satisfy the second equation.
If $c=2$, then $a=2, b=1$ (or vv.) and we have $x=12$, $y=6$, $z=4$ which is the only solution.
A: $$\begin{cases}xyz = 288\\xy + xz + yz = 144\end{cases}\overset{Resultant_z}{\implies}288 x + 288 y - 144 x y + x^2 y^2=0\implies$$
$$\Bigl(36 (x y^2 - 72 (y - 2))\Bigr)^2 = 26873856 + 373248 (-72 y) + 1296 (-72 y)^2 + (-72 y)^3$$
magma-code:
V:= [];
S:= IntegralPoints(EllipticCurve([0, 1296, 0, 373248, 26873856]));
for s in S do
  y:= s[1]/(-72);
  if (y ne 0) and (y eq Floor(y)) then
    x:= (s[2]/36+72*(y-2))/y^2;
    if x eq Floor(x) then
      z:= 288/x/y;
      if z eq Floor(z) then
        if (x le y) and (y le z) then
          V cat:= [[x,y,z]];
        end if;
      end if;
    end if;
  end if;
end for;
if #V ge 1 then
  for v in V do printf "%o,", v; end for;
  printf "\n";
end if;
quit;

with output [ 4, 6, 12 ].
