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
#include <stdio.h>

int t,k,nawiasy;
int r[101];

void razy(int j)
{
	if (j==2) printf("(1+1)*");
	if (j==3) printf("(1+1+1)*");
	return;
}


void razy_naw(int j)
{
	if (j==2) printf("(1+1)*(");
	if (j==3) printf("(1+1+1)*(");
	nawiasy++;
	return;
}


void dodaj1(void)
{
	printf("1+");
	return;
}

void czysc_czytaj(void)
{
	int i;
	for(i=0;i<101;++i)
		r[i]=0;
	nawiasy=0;
	scanf("%d",&k);
	
	return;
}


int main()
{
	int i,m;
	scanf("%d",&t);
	
	while(t--)
	{
	czysc_czytaj();
	m=k; i=0;
	while(m)
	{
		if (m%2==0) {m/=2; r[++i]=2;}
		if (m%3==0) {m/=3; r[++i]=3;}
		if ((m%2) && (m%3)) {m-=1; r[++i]=1;}
	}
	
	for(m=1;m<=i;++m)
	{
		if((r[m]==1) && (m<i)) dodaj1();
		if((r[m]==2) && (r[m+1]==1) && (m!=i-1)) razy_naw(2); 
		if((r[m]==3) && (r[m+1]==1) && (m!=i-1)) razy_naw(3);
		if(r[m]==2 && r[m+1]!=1) razy(2); 
		if(r[m]==3 && r[m+1]!=1) razy(3); 
		if(r[m]==3 && m==i-1) razy(3);
		if(r[m]==2 && m==i-1) razy(2);
	}
	printf("1");
	for(i=0;i<nawiasy;++i)
		printf(")");
	printf("\n");	
	}
	
	return 0;
}