program Splitsen (input, output);

{ (c) 10/8/'97 Meinte Boersma
  Pascal-uitwerking van de NKP'97-opgave "Splitsen"
}

type
   som = array[1..5] of integer;

var
   a : som;
   run, n, t : integer;


procedure splits (x, k : integer; var a : som);

begin
   if k=0 then begin
      if x=0 then begin
         { correcte splitsing }
         writeln('4*', t:1, '=',
                 sqr(a[4]):1, '+', sqr(a[3]):1, '+',
                 sqr(a[2]):1, '+', sqr(a[1]):1);
      end;
   end else begin
      a[k] := a[k+1];
      while sqr(a[k])<=x do begin
	 splits(x-sqr(a[k]),k-1,a);
	 a[k] := a[k]+2;
      end;
   end;
end; { splits }


begin
   { lees invoer }
   readln(n);
   for run := 1 to n do begin
      readln(t);
      a[5] := 1;
      splits(4*t,4,a);
      if run<n then writeln;
   end;
end.