#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
int main ()
{
ios_base::sync_with_stdio(0);
int i, ile, liczba, suma, naw, k;
vector < int > dane;
cin >> ile;
for (i=1; i<=ile; i++)
{
cin >> liczba;
suma=0;
dane.clear();
dane.push_back(0);
if ((liczba==1) || (liczba==2) || (liczba==3) || (liczba==5))
if (liczba==1)
{
cout << "1" << endl;
continue;
}
else
if (liczba==2)
{
cout << "1+1" << endl;
continue;
}
else
if (liczba==3)
{
cout << "1+1+1" << endl;
continue;
}
else
{
cout << "1+1+1+1+1" << endl;
continue;
}
else
while (liczba!=1)
{
if ((liczba%5!=0) && (liczba%3!=0) && (liczba%2!=0))
{
if (liczba==1) break;
liczba=liczba-1;
if (dane.back()!=0)
dane.push_back(0);
dane.push_back(1);
}
while (liczba%5==0)
{
dane.push_back(5);
liczba=liczba/5;
}
if ((liczba%3!=0) && (liczba%2!=0))
{
if (liczba==1) break;
liczba=liczba-1;
if (dane.back()!=0)
dane.push_back(0);
dane.push_back(1);
}
while (liczba%3==0)
{
dane.push_back(3);
liczba=liczba/3;
}
if (liczba%2!=0)
{
if (liczba==1) break;
liczba=liczba-1;
if (dane.back()!=0)
dane.push_back(0);
dane.push_back(1);
}
while (liczba%2==0)
{
dane.push_back(2);
liczba=liczba/2;
}
if ((dane.back()!=0) && (liczba!=1))
dane.push_back(0);
}
// for( size_t j = 0; j < dane.size(); j++ )
// {
// cout << dane[j];
// suma=suma+dane[j];
// cout << endl;
// }
// cout << endl << suma;
naw=0;
// cout << "=";
for( size_t j = 1; j < dane.size(); j++ )
{
switch(dane[j])
{
case 1:
cout << "1+";
break;
case 2:
{
cout << "(1+1)";
if (j!=dane.size()-1) cout << "*";
}
break;
case 3:
{
cout << "(1+1+1)";
if (j!=dane.size()-1) cout << "*";
}
break;
case 5:
{
cout << "(1+1+1+1+1)";
if (j!=dane.size()-1) cout << "*";
}
break;
case 0:
{
cout << "(";
naw=naw+1;
}
break;
}
}
for (k=1; k<=naw; k++)
cout << ")";
cout << endl;
dane.clear();
suma=0;
}
return 0;
}
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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | #include <iostream> #include <cstdio> #include <cstring> #include <vector> using namespace std; int main () { ios_base::sync_with_stdio(0); int i, ile, liczba, suma, naw, k; vector < int > dane; cin >> ile; for (i=1; i<=ile; i++) { cin >> liczba; suma=0; dane.clear(); dane.push_back(0); if ((liczba==1) || (liczba==2) || (liczba==3) || (liczba==5)) if (liczba==1) { cout << "1" << endl; continue; } else if (liczba==2) { cout << "1+1" << endl; continue; } else if (liczba==3) { cout << "1+1+1" << endl; continue; } else { cout << "1+1+1+1+1" << endl; continue; } else while (liczba!=1) { if ((liczba%5!=0) && (liczba%3!=0) && (liczba%2!=0)) { if (liczba==1) break; liczba=liczba-1; if (dane.back()!=0) dane.push_back(0); dane.push_back(1); } while (liczba%5==0) { dane.push_back(5); liczba=liczba/5; } if ((liczba%3!=0) && (liczba%2!=0)) { if (liczba==1) break; liczba=liczba-1; if (dane.back()!=0) dane.push_back(0); dane.push_back(1); } while (liczba%3==0) { dane.push_back(3); liczba=liczba/3; } if (liczba%2!=0) { if (liczba==1) break; liczba=liczba-1; if (dane.back()!=0) dane.push_back(0); dane.push_back(1); } while (liczba%2==0) { dane.push_back(2); liczba=liczba/2; } if ((dane.back()!=0) && (liczba!=1)) dane.push_back(0); } // for( size_t j = 0; j < dane.size(); j++ ) // { // cout << dane[j]; // suma=suma+dane[j]; // cout << endl; // } // cout << endl << suma; naw=0; // cout << "="; for( size_t j = 1; j < dane.size(); j++ ) { switch(dane[j]) { case 1: cout << "1+"; break; case 2: { cout << "(1+1)"; if (j!=dane.size()-1) cout << "*"; } break; case 3: { cout << "(1+1+1)"; if (j!=dane.size()-1) cout << "*"; } break; case 5: { cout << "(1+1+1+1+1)"; if (j!=dane.size()-1) cout << "*"; } break; case 0: { cout << "("; naw=naw+1; } break; } } for (k=1; k<=naw; k++) cout << ")"; cout << endl; dane.clear(); suma=0; } return 0; } |
English