Pagini recente » Cod sursa (job #1524321) | Cod sursa (job #2080724) | Cod sursa (job #1501754) | Cod sursa (job #1063753) | Cod sursa (job #109660)
Cod sursa(job #109660)
#include<stdio.h>
#include<math.h>
long as,a,b,c,k,q,p,i,j,cs,l,auxp1,auxp2,auxq1,auxq2,p1[100],p2[100],q1[100],q2[100],m[100][5];
int main()
{
freopen("ecuatie.in","r",stdin);
freopen("ecuatie.out","w",stdout);
scanf("%ld%ld%ld%ld",&a,&b,&c,&k);
as=sqrt(a);
for(i=1;i<=as;i++)
if(a%i==0)
{
p1[++q]=i;p2[q]=a/i;
if(a/i!=i) p1[++q]=a/i;p2[q]=i;
p1[++q]=-i;p2[q]=-(a/i);
if(-(a/i)!=-i) p1[++q]=-(a/i);p2[q]=-i;
}
cs=sqrt(abs(c));
for(i=1;i<=cs;i++)
if(c%i==0)
{
q1[++p]=i;q2[p]=c/i;
if(c/i!=i) q1[++p]=c/i;q2[p]=i;
q1[++p]=-i;q2[p]=-(c/i);
if(-(c/i)!=-i) q1[++p]=-(c/i);q2[p]=-i;
}
for(i=1;i<=q;i++)
{
for(j=1;j<=p;j++)
if(p1[i]*q2[j]+p2[i]*q1[j]==b)
{
m[++l][1]=p1[i];
m[l][3]=p2[i];
m[l][2]=q1[j];
m[l][4]=q2[j];
}
}
for(i=1;i<l;i++)
for(j=i+1;j<=l;j++)
if(m[i][1]>m[j][1])
{
auxp1=m[i][1];
auxq1=m[i][2];
auxp2=m[i][3];
auxq2=m[i][4];
m[i][1]=m[j][1];
m[i][2]=m[j][2];
m[i][3]=m[j][3];
m[i][4]=m[j][4];
m[j][1]=auxp1;
m[j][2]=auxq1;
m[j][3]=auxp2;
m[j][4]=auxq2;
}
else if(m[i][1]==m[j][1] && m[i][2]>m[j][2])
{
auxp1=m[i][1];
auxq1=m[i][2];
auxp2=m[i][3];
auxq2=m[i][4];
m[i][1]=m[j][1];
m[i][2]=m[j][2];
m[i][3]=m[j][3];
m[i][4]=m[j][4];
m[j][1]=auxp1;
m[j][2]=auxq1;
m[j][3]=auxp2;
m[j][4]=auxq2;
}
printf("(");
if(m[k][1]==-1)
printf("-");
else if(m[k][1]!=1)
printf("%ld",m[k][1]);
printf("x");
if(m[k][2]<0)
printf("%ld",m[k][2]);
else printf("+%ld",m[k][2]);
printf(")(");
if(m[k][3]==-1)
printf("-");
else if(m[k][3]!=1)
printf("%ld",m[k][1]);
printf("x");
if(m[k][4]<0)
printf("%ld",m[k][4]);
else printf("+%ld",m[k][4]);
printf(")");
return 0;
}