Pagini recente » Cod sursa (job #2635580) | Cod sursa (job #2079889) | Cod sursa (job #1668964) | Cod sursa (job #3247918) | Cod sursa (job #1965550)
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
int a,b,c,K,k,k2,d,p1,p2,q1,q2,i,j,v[10001],w[10001];
ifstream fin ("ecuatie.in");
ofstream fout ("ecuatie.out");
int modul (int n){
if (n < 0)
return -n;
return n;
}
int main (){
fin>>a>>b>>c>>K;
// punem toti divizorii lui a intr-un vector
for (d=1;d*d<=modul(a);d++){
if (modul(a) % d == 0){
v[++k] = d;
v[++k] = -d;
v[++k] = modul (a)/d;
v[++k] = - (modul (a)/d);
}
}
if (sqrt(a) == (int)sqrt(a))
k-=2;
for (d=1;d*d<=modul(c);d++){
if (modul(c) % d == 0){
w[++k2] = d;
w[++k2] = -d;
w[++k2] = modul (c)/d;
w[++k2] = - (modul (c)/d);
}
}
if (sqrt(c) == (int)sqrt(c))
k2-=2;
sort (v+1,v+k+1);
sort (w+1,w+k2+1);
int ap = 0;
for (i=1;i<=k;i++)
for (j=1;j<=k2;j++){
p1 = v[i];
p2 = w[j];
q1 = a / p1;
q2 = c / p2;
if (p1 * q2 + p2*q1 == b){
ap++;
if (ap < K)
continue;
fout<<"(";
if (p1 == 1)
fout<<"x";
else{
if (p1 == -1)
fout<<"-x";
else
fout<<p1<<"x";
}
if (p2 >= 0)
fout<<"+"<<p2;
else
fout<<p2;
fout<<")(";
if (q1 == 1)
fout<<"x";
else{
if (q1 == -1)
fout<<"-x";
else
fout<<q1<<"x";
}
if (q2 >= 0)
fout<<"+"<<q2;
else
fout<<q2;
fout<<")";
return 0;
}
}
return 0;
}