Cod sursa(job #110203)

Utilizator SycronVene Tian Sycron Data 25 noiembrie 2007 20:33:38
Problema Ecuatie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.67 kb
#include <iostream.h>
#include <fstream.h>
#include <math.h>
void main()
{
long x1,x2,delta,a1,a2,sol,i,var,co=0,var2,semn=1,semn2=1,s1=1,s2=1,div=0,last;
long a,b,c,k;
ifstream in("ecuatie.in");
in >> a >> b >> c >>k ;in.close();
delta=(pow(b,2))-(4*a*c);
x1=(-b + sqrt(delta))/(2*a);
x2=(-b - sqrt(delta))/(2*a);
ofstream out("ecuatie.out");
if(a>0) sol=-a; else sol=a;
for(i=-1;i>=sol&&co<k;i--)
   {if(a%i==0){co=co+2;last=i;}
   }

for(i=a;i>0&&co<k;i--)
   {
   
if(a%i==0){co=co+2;last=i;}

   }

var=a/last;
var2=a/var;
for(i=-1;i>=sol;i--)
if(a%i==0) div=div+2;
for(i=a;i>0;i--)
if(a%i==0)div=div+2;

 
if(k%2==1&&co<k) co++;
if(k%2==1&&co>k) co--;
if(var<0) {var=-var;semn=0;}
if(var2<0) {var2=-var2;semn2=0;}
if(x2<0) {x2=-x2;s2=0;}
if(x1<0) {x1=-x1;s1=0;}
//out<<'\0';
//<<"co="<<co;
//out<<"\xAvar2="<<var2;
//out<<"\xAx2="<<x2;
//out<<"\xAvar="<<var;
//out<<"\xAx1="<<x1<<"\xA";

if(co%2==0&&co>div/2)
		{

out<<"(";
if(semn==0)out<<"-";
if(var!=1&&var!=-1)
out<<var<<"x";
if(var==1||var==-1)
	out<<"x";
if(semn==0&&s1==0)out<<"-";else
if(semn&&s2)out<<"-";else out<<"+";
out<<var*x2;
out<<")";
out<<"(";
if(semn2==0)out<<"-";
if(var2!=1&&var2!=-1)
out<<var2<<"x";
if(var2==1||var2==-1)
	out<<"x";
if(semn2==0&&s2==0)out<<"-";else
if(semn2&&s1)out<<"-";else out<<"+";
out<<var2*x1;
out<<")";


	}


if(co%2==0&&co<=div/2)
		{

out<<"(";
if(semn==0)out<<"-";
if(var!=1&&var!=-1)
out<<var<<"x";
if(var==1||var==-1)
	out<<"x";
if(semn==0&&s1==0)out<<"-";else
if(semn&&s1)out<<"-";else out<<"+";
out<<var*x1;
out<<")";
out<<"(";
if(semn2==0)out<<"-";
if(var2!=1&&var2!=-1)
out<<var2<<"x";
if(var2==1||var2==-1)
	out<<"x";
if(semn2==0&&s2==0)out<<"-";else
if(semn2&&s2)out<<"-";else out<<"+";
out<<var2*x2;
out<<")";


	}




if(co%2==1&&co<=div/2)
		{
out<<"(";
if(semn==0)out<<"-";
if(var!=1&&var!=-1)
out<<var<<"x";
if(var==1||var==-1)
	out<<"x";
if(semn==0&&s1==0)out<<"+";else
if(semn&&s1)out<<"+";else out<<"-";
out<<var*x2;
out<<")";
out<<"(";
if(semn2==0)out<<"-";
if(var2!=1&&var2!=-1)
out<<var2<<"x";
if(var2==1||var2==-1)
	out<<"x";
if(semn2==0&&s2==0)out<<"+";else
if(semn2&&s2)out<<"+";else out<<"-";
out<<var2*x1;
out<<")";

	}


if(co%2==1&&co>div/2)
		{
out<<"(";
if(semn==0)out<<"-";
if(var!=1&&var!=-1)
out<<var<<"x";
if(var==1||var==-1)
	out<<"x";
if(semn==0&&s1==0)out<<"-";else
if(semn&&s1)out<<"-";else out<<"+";
out<<var*x1;
out<<")";
out<<"(";
if(semn2==0)out<<"-";
if(var2!=1&&var2!=-1)
out<<var2<<"x";
if(var2==1||var2==-1)
	out<<"x";
if(semn2==0&&s2==0)out<<"-";else
if(semn2&&s2)out<<"-";else out<<"+";
out<<var2*x2;
out<<")";

	}
out.close();
}