Pagini recente » Cod sursa (job #1623099) | Cod sursa (job #2339066) | Cod sursa (job #1789027) | Cod sursa (job #2800476) | Cod sursa (job #2239858)
#include <bits/stdc++.h>
using namespace std;
int a, b, c, k;
int A[50005], B[50005];
int main()
{
freopen("ecuatie.in", "r", stdin);
freopen("ecuatie.out", "w", stdout);
scanf("%d%d%d%d", &a, &b, &c, &k);
int NR = 0;
for(int i = 1; i * i <= abs(a) ; ++i){
if(a % i == 0){
A[++NR] = i;
A[++NR] = -i;
if(a / i != i){
A[++NR] = -(a / i);
A[++NR] = a / i;
}
}
}
int NR2 = 0;
for(int i = 1; i * i <= abs(c) ; ++i){
if(c % i == 0){
B[++NR2] = i;
B[++NR2] = -i;
if(c / i != i){
B[++NR2] = -(c / i);
B[++NR2] = c / i;
}
}
}
sort(A + 1, A + NR + 1);
sort(B + 1, B + NR2 + 1);
for(int i = 1; i <= NR ; ++i){
for(int j = 1; j <= NR2 ; ++j){
int p1 = A[i], q1 = B[j];
int p2 = a / p1, q2 = c / B[j];
if(1LL * p1 * q2 + 1LL * p2 * q1 == b){
--k;
if(k == 0) {
printf("(");
if(abs(p1) != 1) printf("%d", p1);
else if(p1 == -1) printf("-");
printf("x");
if(q1 < 0) printf("-");
else printf("+");
if(q1 != 0) printf("%d", abs(q1));
printf(")");
printf("(");
if(abs(p2) != 1) printf("%d", p2);
else if(p2 == -1) printf("-");
printf("x");
if(q2 < 0) printf("-");
else printf("+");
if(q2 != 0) printf("%d", abs(q2));
printf(")");
return 0;
}
}
}
}
return 0;
}