Pagini recente » Cod sursa (job #2283294) | Cod sursa (job #790740) | Cod sursa (job #1603949) | Cod sursa (job #128751) | Cod sursa (job #2099183)
#include<fstream>
#include<algorithm>
#include<math.h>
#include<iostream>
using namespace std;
ifstream f("ecuatie.in");
ofstream g("ecuatie.out");
int a,b,c,k,n,m,v1[10009],v2[10009],z;
void posibilitati_a(){
int nr=a,rad;
if(nr<0)nr=-nr;
rad=(int)sqrt((double)nr);
if(rad*rad==nr){
v1[++m]=rad;rad--;
}
for(int i=1;i<=rad;i++)
if(nr%i==0){
v1[++m]=i;
v1[++m]=nr/i;
}
for(int i=1;i<=m;i++)
v1[i+m]=-v1[i];
m*=2;
sort(v1+1,v1+1+m);
}
void posibilitati_c(){
int nr=c,rad;
if(nr<0)nr=-nr;
rad=(int)sqrt((double)nr);
if(rad*rad==nr){
v2[++n]=rad;rad--;
}
for(int i=1;i<=rad;i++)
if(nr%i==0){
v2[++n]=i;
v2[++n]=nr/i;
}
for(int i=1;i<=n;i++)
v2[i+n]=-v2[i];
n*=2;
sort(v2+1,v2+1+n);
}
int main(){
f>>a>>b>>c>>k;
posibilitati_a();
posibilitati_c();
cout<<m<<n;
if(m*n<k){
g<<-1;
return 0;
}
for(int i=1;i<=m;i++){
int p=int(a/v1[i]);
for(int j=1;j<=n;j++){
int q=int(c/v2[j]);
if(v1[i]*q+v2[j]*p==b)
z++;
if(z==k){
g<<"(";
if(v1[i]==1)
g<<"x";
else if(v1[i]==-1)
g<<"-x";
else
g<<v1[i]<<"x";
if(v2[j]<0)
g<<v2[j]<<")";
else
g<<"+"<<v2[j]<<")";
if(p==-1)
g<<"(-x";
else if(p==1)
g<<"(x";
else
g<<"("<<p<<"x";
if(q<0)
g<<q<<")\n";
else
g<<"+"<<q<<")\n";
return 0;
}
}
}
cout<<"f";
if(k!=z)
g<<-1;
return 0;
}