Cod sursa(job #127053)

Utilizator gabor_oliviu1991gaboru corupt gabor_oliviu1991 Data 23 ianuarie 2008 11:45:08
Problema Ecuatie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream.h>
#include<math.h>
int main()
{  long a,b,c,k,d[1000]={0},p1,p2,q1,q2;
   int i,l=1,da;
   ifstream f("ecuatie.in");
   ofstream g("ecuatie.out");
   f>>a>>b>>c>>k;
   q1=(-b+sqrt((pow(b,2)-4*a*c)))/(2*a);
   q2=(-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;
   l=k/2;
   if(k%2==1)  l++;
   da=d[l];
   if(da>0)
      if(k%2==0)
       {p1=da;
	p2=a/da;
	q1=-c/p2;
	q2=c/q1;}
      else
       {p1=da;
       p2=a/p1;
       q1=-da;
       q2=c/q1;}
   else
	if(k%2==0)

       {p1=da;
       p2=a/p1;
       q1=-da;
       q2=c/q1;}

      else
       {p1=da;
	p2=a/da;
	q1=-c/p2;
	q2=c/q1;}


   if(p1==1)   g<<"(x";
     else
	if(p1==-1)  g<<"(-x";
	    else       g<<"("<<p1<<"x";
   if(q1>0)
	g<<"+"<<q1<<")";
   else
	g<<q1<<")";
   if(p2==1)   g<<"(x";
     else
	if(p2==-1)  g<<"(-x";
	    else       g<<"("<<p2<<"x";
   if(q2>0)
	g<<"+"<<q2<<")";
   else
	g<<q2<<")";

   return 0;
   }