program hipoteze;

  const MAX = 100;
        RZ = 'HIPOT.REZ';
  type lentele = array [1..1000] of longint;

  procedure trecias (n, n1, n2: longint;
                     var yra: boolean; var n3: longint);
  { apskaiÑiuoja treÑiÐ narÔ }
    var liekana, dalmuo, vardiklis: longint;
  begin
    vardiklis := 4*n1*n2 - n*n2 - n*n1;
    if vardiklis <> 0 then
       begin
         liekana := (n*n1*n2) mod vardiklis;
         dalmuo := (n*n1*n2) div vardiklis;
         yra := (liekana = 0) and (dalmuo > n2);
      end
    else yra := false;
    if yra
       then n3 := dalmuo;
  end; { treÑias }

 procedure skaidyti (n: longint; var kiek: longint; var d: lentele);
 { iÕskaido n pirminiais dauginamaisiais }
   var daug: longint;
 begin
   kiek := 0; daug := 2; { maØiausias pirminis dauginamasis }
   while n > 1 do
     if n mod daug = 0
        then begin
               kiek := kiek + 1;
               d[kiek] := daug;
               n := n div daug
             end
        else daug := daug + 1
 end; { skaidyti }

 procedure spa (kiek: integer; d: lentele; var f: text);
 { spausdina trupmenos vardiklÔ }
   var i: longint;
 begin
   if kiek > 1 then write (f, '(');
   for i := 1 to kiek - 1 do
     write(f, d[i], '*');
   write (f, d[kiek]);
   if kiek > 1 then write (f, ')');
 end; { spausd_trup }


 procedure skleisti (n: longint; var f: text);
   var n1, n2, n3, kiek: longint;
       yra: boolean;
       d: lentele;
 begin
   for n1 := n div 4 to 3*n div 4 do
    if (4*n1-n <> 0) then { jei 4/n nelygus pirmam dÓmeniui }
     for n2 := n1+1 to 2*n*n1 div (4*n1-n) do
       begin
        trecias (n, n1, n2, yra, n3);
        if yra then
          begin { jei radome treÑiÐ dÓmenÔ }
            write (f, '4/', n, '=4/');
            skaidyti (n, kiek, d); { antra trupmena }
            spa (kiek, d, f);
            write (f, '=1/');
            skaidyti (n1, kiek, d); { pirmas skleidinio dÓmuo }
            spa (kiek, d, f);
            write (f, '+1/');
            skaidyti (n2, kiek, d); { antras skleidinio dÓmuo }
            spa (kiek, d, f);
            write (f, '+1/');
            skaidyti (n3, kiek, d); { treÑias skleidinio dÓmuo }
            spa (kiek, d, f);
            writeln (f);
           end;
        end;
 end; { skleisti }


  var n: longint;
      f: text;

begin
  readln (n);
  assign (f, RZ);
  rewrite (f);
  skleisti (n, f);
  close (f);
end.
