Pagini recente » Cod sursa (job #1993364) | Cod sursa (job #363314) | Cod sursa (job #2006936) | Cod sursa (job #3000843) | Cod sursa (job #163375)
Cod sursa(job #163375)
#include<fstream.h>
#include<math.h>
int main()
{ long a,b,c,k,d[1000]={0},x1,x2,delta;
struct { long p1,q1,p2,q2;}v[1000]={0},aux;
int i,l=0,j;
ifstream f("ecuatie.in");
ofstream g("ecuatie.out");
f>>a>>b>>c>>k;
delta=sqrt(b*b-4*a*c);
x1=(-b-delta)/(2*a);
x2=(-b+delta)/(2*a);
for(i=-abs(a);i<0;i++)
if(a%i==0&&i!=0) d[l++]=i;
for(i=1;i<=a;i++)
if(a%i==0) d[l++]=i;
if(k>(l*2)) g<<"-1";
else
{
j=0;
for(i=0;i<l;i++)
{ v[j].p1=d[i];
v[j].q1=-x1*d[i];
v[j].p2=a/d[i];
v[j].q2=-x2*(a/d[i]);
j++;
v[j].p1=d[i];
v[j].q1=-x2*d[i];
v[j].p2=a/d[i];
v[j].q2=-x1*(a/d[i]);
j++;}
for(i=0;i<l*2-1;i+=2)
if(v[i].q1>v[i+1].q1)
{aux=v[i];v[i]=v[i+1];v[i+1]=aux;}
k--;
if(v[k].p1*v[k].p2==a&&v[k].q1*v[k].q2==c)
{ if(v[k].p1==1) g<<"(x";
else
if(v[k].p1==-1) g<<"(-x";
else g<<"("<<v[k].p1<<"x";
if(v[k].q1>0)
g<<"+"<<v[k].q1<<")";
else
g<<v[k].q1<<")";
if(v[k].p2==1) g<<"(x";
else
if(v[k].p2==-1) g<<"(-x";
else g<<"("<<v[k].p2<<"x";
if(v[k].q2>0)
g<<"+"<<v[k].q2<<")";
else
g<<v[k].q2<<")";
} else g<<"-1";
}
return 0;
}