#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int compare( const void* a, const void* b ) {
int* aa = (int*) a;
int* bb = (int*) b;
if( *aa < *bb ) return -1;
else if( *aa == *bb ) return 0;
else return 1;
}
int intreg(double x)
{
if ((int)x==(double)x)
return 1;
else return 0;
}
int main()
{
FILE *in,*out;
int d[100000],a,b,c,k,delta,x,nr,i,p1[2],q2[2],p2[2],q1[2];
double x1,x2;
in=fopen("ecuatie.in","r");
out=fopen("ecuatie.out","w");
fscanf(in,"%d%d%d%d",&a,&b,&c,&k);
delta=b*b-4*a*c;
if (delta<0||floor(sqrt(delta))*floor(sqrt(delta))!=delta)
{
fprintf(out,"-1\n");
fclose(in);
fclose(out);
return 0;
}
x1=((double)(-b-sqrt(delta)))/((double)2*a);
x2=((double)(-b+sqrt(delta)))/((double)2*a);
nr=0;
d[0]=-a-1;
for (i=1;i<=sqrt(abs(a));i++)
if (a%i==0)
{
nr++;
d[nr]=i;
nr++;
d[nr]=-i;
if (i!=a/i)
{
nr++;
d[nr]=a/i;
nr++;
d[nr]=-(a/i);
}
}
qsort(d,nr+1,sizeof(d[1]),compare);
x=1;
while (k>0&&x<=nr)
{
if (intreg(-x1*d[x])&&intreg(-x2*(a/d[x]))&&intreg(-x2*d[x])&&intreg(-x1*(a/d[x]))&&delta!=0)
{
if(-x1*d[x]<-x2*d[x])
{
p1[0]=d[x];
p2[0]=a/d[x];
q1[0]=-x1*d[x];
q2[0]=-x2*(a/d[x]);
p1[1]=d[x];
p2[1]=a/d[x];
q1[1]=-x2*d[x];
q2[1]=-x1*(a/d[x]);
}
else
{
p1[1]=d[x];
p2[1]=a/d[x];
q1[1]=-x1*d[x];
q2[1]=-x2*(a/d[x]);
p1[0]=d[x];
p2[0]=a/d[x];
q1[0]=-x2*d[x];
q2[0]=-x1*(a/d[x]);
}
k-=2;
}
else
{
if (intreg(-x1*d[x])&&intreg(-x2*(a/d[x])))
{
p1[1]=d[x];
p2[1]=a/d[x];
q1[1]=-x1*d[x];
q2[1]=-x2*(a/d[x]);
k--;
}
else
if (intreg(-x2*d[x])&&intreg(-x1*(a/d[x])))
{
p1[1]=d[x];
p2[1]=a/d[x];
q1[1]=-x2*d[x];
q2[1]=-x1*(a/d[x]);
k--;
}
}
x++;
}
if (k>0)
{
fprintf(out,"-1\n");
fclose(in);
fclose(out);
return 0;
}
if (p1[k+1]==1)
fprintf(out,"(x");
else
if (p1[k+1]==-1)
fprintf(out,"(-x");
else
fprintf(out,"(%dx",p1[k+1]);
if (q1[k+1]<0)
fprintf(out,"%d)",q1[k+1]);
else
fprintf(out,"+%d)",q1[k+1]);
if (p2[k+1]==1)
fprintf(out,"(x");
else
if (p2[k+1]==-1)
fprintf(out,"(-x");
else
fprintf(out,"(%dx",p2[k+1]);
if (q2[k+1]<0)
fprintf(out,"%d)",q2[k+1]);
else
fprintf(out,"+%d)",q2[k+1]);
fprintf(out,"\n");
fclose(in);
fclose(out);
return 0;
}