1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <bits/stdc++.h>

using namespace std;
int ile;
long long tab_pot[30];
int tab_pom[30];
int tab_wyp[30];
int liczba_w_binarnym[30];
void rozpisz_binarnie(long long x)
{
    bool czy_juz=false;
     ile=0;
    for(int i=0;i<30&&czy_juz==false;i++)
    {
        tab_pom[i]=x%2;
        ile++;
        if(x==1)czy_juz=true;
        x=x/2;
    }
    int z=ile-1;
    for(int i=0;i<ile;i++)
    {
        liczba_w_binarnym[z]=tab_pom[i];
        z--;
    }
}

int main()
{
    tab_pot[0]=1;
    for(int i=1;i<30;i++)
    {
        tab_pot[i]=tab_pot[i-1]*2;
    }
    int t;
    long long k;
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
        scanf("%lld",&k);
        bool czy_wypisalem=false;
         if(k==1)
            {
                printf("1\n");
                czy_wypisalem=true;
            }
            if(czy_wypisalem==false)
        {
            for(int j=1;j<30;j++)
        {
            if(tab_pot[j]==k)
            {
                for(int u=0;u<j;u++)
                {
                    if(u==0)printf("(1+1)");
                    else printf("*(1+1)");
                }
                printf("\n");
                czy_wypisalem=true;
            }
        }
        if(czy_wypisalem==false)
        {
        rozpisz_binarnie(k);
        int d=0;
        for(int j=0;j<ile;j++)
        {
            if(liczba_w_binarnym[j]==1)tab_wyp[d]=j,d++;
        }
        int pom_d=d;
        for(int j=pom_d-1;j>=0;j--)
        {
            if(j==pom_d-1)
            {
                if(ile-1-tab_wyp[d-1]==0)printf("1");
                else
                {
                for(int u=0;u<ile-1-tab_wyp[d-1];u++)
                {
                    if(u==0)printf("(1+1)");
                    else
                        {
                        printf("*(1+1)");
                        }
                }
            }
            d--;
            }
            else
            {
                {
                    printf("*(");
                    for(int u=0;u<ile-1-tab_wyp[d-1]-(ile-1-tab_wyp[d]);u++)
                {
                    if(u==0)printf("(1+1)");
                    else
                        {
                         if(u<ile-1-tab_wyp[d-1])   printf("*(1+1)");
                         else printf("*(1+1)");
                        }
                }
                d--;
                }
        }
        }
        printf("+1)");
        for(int j=0;j<pom_d-2;j++)
        {
            printf("+1)");
        }
        printf("\n");
        for(int j=0;j<30;j++)tab_pom[j]=0,liczba_w_binarnym[j]=0,tab_wyp[j]=0;
        }
        }
    }
    return 0;
}