#include<cstdio>
using namespace std;
int n;
bool o(int n) {
return n!=0&&(n&(n-1))==0;
}
bool p(int n) {
for(int i=2; i*i<=n; i++)
if(n%i==0) {
return 0;
}
return 1;
}
int main() {
scanf("%d",&n);
switch(n) {
case 1: {
printf("x-1");
return 0;
}
case 2: {
printf("(x-1)(x+1)");
return 0;
}
case 3: {
printf("(x-1)(x^2+x+1)");
return 0;
}
case 4: {
printf("(x-1)(x+1)(x^2+1)");
return 0;
}
default: {
if(p(n)) {
printf("(x-1)(");
for(int i=n-1; i>=2; i--) {
printf("x^%d+",i);
}
printf("x+1)");
return 0;
}
if(o(n)) {
printf("(x-1)");
for(int i=2; i<n; i<<=1) {
printf("(x^%d+1)",i);
}
return 0;
}
}
}
return 0;
}