Pagini recente » Cod sursa (job #2940884) | Cod sursa (job #3141700) | Cod sursa (job #1250381) | Cod sursa (job #1392889) | Cod sursa (job #128395)
Cod sursa(job #128395)
#include<fstream.h>
#include<math.h>
int main()
{ long a,b,c,k,d[1000]={0},x1,x2;
struct { long p1,q1,p2,q2;}v[1000]={0},aux;
int i,l=0,ok,j;
ifstream f("ecuatie.in");
ofstream g("ecuatie.out");
f>>a>>b>>c>>k;
x1=(-b+sqrt((pow(b,2)-4*a*c)))/(2*a);
x2=(-b-sqrt(pow(b,2)-4*a*c))/(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;
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++;}
do { ok=1;
for(i=0;i<j-3;i++)
if((v[i].p1==v[i+1].p1)&&(v[i].q1>v[i+1].q1))
{aux=v[i];v[i]=v[i+1];v[i+1]=aux;ok=0;}
}
while(ok!=1);
if(v[k-1].p1==1) g<<"(x";
else
if(v[k-1].p1==-1) g<<"(-x";
else g<<"("<<v[k-1].p1<<"x";
if(v[k-1].q1>0)
g<<"+"<<v[k-1].q1<<")";
else
g<<v[k-1].q1<<")";
if(v[k-1].p2==1) g<<"(x";
else
if(v[k-1].p2==-1) g<<"(-x";
else g<<"("<<v[k-1].p2<<"x";
if(v[k-1].q2>0)
g<<"+"<<v[k-1].q2<<")";
else
g<<v[k-1].q2<<")";
return 0;
}