#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; } |