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
#include <cstdio>
int q, n;
int in, t[1000111], ilej, ilej2, pom;		//1 to ' +1) '     2 to ' *(1+1) '
void zrob(int x)
{
	if(x==2){in++; t[in]=2; return;}
	if(x==3){in++; t[in]=2; in++; t[in]=1; ilej++; return;} 
	zrob(x/2);
	in++;
	t[in]=2;
	if(x%2==1){in++; t[in]=1; ilej++;}
}
int main()
{
	scanf("%d", &q);
	while(q--)
	{
		scanf("%d", &n);
		in=0;
		ilej=0;
		if(n==1){printf("1\n"); continue;}
		zrob(n);
		//for(int i=1; i<=in; i++)printf("%d ", t[i]);
		//printf("\n\n");
		for(int i=1; i<ilej; i++)printf("(");
		if(t[in]==2&&ilej>0)printf("(");
		printf("(1+1)");
		for(int i=2; i<=in; i++)
		{
			if(t[i]==1)
			{
				if(i==in)printf("+1");
				else printf("+1)");
			}
			else printf("*(1+1)");
		}
		printf("\n");
	}
	
	
	return 0;
}