Pagini recente » Cod sursa (job #1040198) | Cod sursa (job #168121) | Cod sursa (job #2782336) | Cod sursa (job #106736) | Cod sursa (job #109732)
Cod sursa(job #109732)
var d1,d2,v:array[1..1000000]of longint;
n,i,j,k,a1,a2,a3,l,k1,k2:longint;
f:text;
begin
assign(f,'ecuatie.in');
reset(f);
read(f,a1,a2,a3,k);
close(f);
l:=0;
for i:=1 to trunc(sqrt(abs(a1)))do
if a1 mod i=0 then begin l:=l+1;
v[l]:=i;
end;
l:=l*2;
if trunc(sqrt(abs(a1)))=sqrt(abs(a1))then l:=l-1;
for i:=1 to l div 2 do
v[l-i+1]:=abs(a1) div v[i];
for i:=1 to l do
d1[i+l]:=v[i];
for i:=l+1 to l*2 do
d1[l*2-i+1]:=d1[i]*(-1);
k1:=l*2;
l:=0;
for i:=1 to trunc(sqrt(abs(a3)))do
if a3 mod i=0 then begin l:=l+1;
v[l]:=i;
end;
l:=l*2;
if trunc(sqrt(abs(a3)))=sqrt(abs(a3))then l:=l-1;
for i:=1 to l div 2 do
v[l-i+1]:=abs(a3) div v[i];
for i:=1 to l do
d2[i+l]:=v[i];
for i:=l+1 to l*2 do
d2[l*2-i+1]:=d2[i]*(-1);
k2:=l*2;
i:=0;
l:=0;
j:=0;
repeat
i:=i+1;
j:=0;
repeat
j:=j+1;
if(d1[i]*(a3 div d2[j]))+(d2[j]*(a1 div d1[i]))=a2 then l:=l+1;
until(l=k)or(j=k2);
until(l=k)or(i=k1);
assign(f,'ecuatie.out');
rewrite(f);
if l=k then begin write(f,'(');
if d1[i]<0 then write(f,'-');
if abs(d1[i])>1 then write(f,abs(d1[i]));
write(f,'x');
if d2[j]<0 then write(f,'-')
else write(f,'+');
write(f,abs(d2[j]));
write(f,')(');
if a1 div d1[i]<0 then write(f,'-');
if abs(a1 div d1[i])>1 then write(f,abs(a1 div d1[i]));
write(f,'x');
if a3 div d2[j]<0 then write(f,'-')
else write(f,'+');
write(f,abs(a3 div d2[j]));
write(f,')');
writeln(f);
end
else writeln(f,'-1');
close(f);
end.