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