#include "cstdio" #include "vector" #include "algorithm" #include "string" using namespace std; vector <long long> tab[105]; long long t,k; string wynik; void jedynki (long long x) { if (x == 1) printf ("1"); else { printf ("(1"); for (int j = 1; j < x; j++) printf ("+1"); printf (")"); } } void rozpisz (long long liczba, bool ok) { if (liczba <= 5) { if (!ok) printf ("*"); jedynki (liczba); return; } int pom = liczba; for (int i = 2; i <= liczba;) { if (pom == 1) return; if (i >= min(100LL,liczba) || (i == pom && pom > 5)) { if (!ok) printf ("*"); printf ("(1+"); rozpisz (pom - 1, true); printf (")"); return; } else if (pom % i == 0) { //printf ("rozpisz (%d)\n", i); if (ok) { rozpisz (i,true); ok = false; } else rozpisz (i,false); pom /= i; } else i++; } } int main() { scanf ("%lld", &t); for (int i = 0; i < t; i++) { scanf ("%lld", &k); rozpisz(k, true); printf ("\n"); } 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 | #include "cstdio" #include "vector" #include "algorithm" #include "string" using namespace std; vector <long long> tab[105]; long long t,k; string wynik; void jedynki (long long x) { if (x == 1) printf ("1"); else { printf ("(1"); for (int j = 1; j < x; j++) printf ("+1"); printf (")"); } } void rozpisz (long long liczba, bool ok) { if (liczba <= 5) { if (!ok) printf ("*"); jedynki (liczba); return; } int pom = liczba; for (int i = 2; i <= liczba;) { if (pom == 1) return; if (i >= min(100LL,liczba) || (i == pom && pom > 5)) { if (!ok) printf ("*"); printf ("(1+"); rozpisz (pom - 1, true); printf (")"); return; } else if (pom % i == 0) { //printf ("rozpisz (%d)\n", i); if (ok) { rozpisz (i,true); ok = false; } else rozpisz (i,false); pom /= i; } else i++; } } int main() { scanf ("%lld", &t); for (int i = 0; i < t; i++) { scanf ("%lld", &k); rozpisz(k, true); printf ("\n"); } return 0; } |