主题:[转帖]数字游戏3
var a,b,c,i,j,x1,x2,m,n:longint;
s1,s2:string;
function t(a,b:longint):longint;
var j:longint;
begin
repeat
j:=a;
a:=b;
a:=a mod j;
b:=j;
until a=0;
t:=j;
end;
begin
while not(eof)do begin
readln(a,b,c);
s1:='x-';s2:='x-';
if (sqr(b)-4*a*c<0)or(sqrt(sqr(b)-4*a*c)
<>trunc(sqrt(sqr(b)-4*a*c)))then begin
writeln('No');
readln;
halt;
end else begin
x1:=trunc(-b+sqrt(sqr(b)-4*a*c));
x2:=trunc(-b-sqrt(sqr(b)-4*a*c));
i:=abs(2*a) div t(abs(x1),abs(2*a));
j:=abs(2*a) div t(abs(x2),abs(2*a));
if (a/i/j=trunc(a/i/j))and(a/j=trunc(a/j))and(a/i=trunc(a/i))then begin
if a div j<0 then n:=-1 else n:=1;
if a div i div j*(x1 div t(abs(x1),abs(2*a)))<0 then m:=-1 else m:=1;
if n*m=-1 then s1[2]:='+' else s1[2]:='-';
if x2/2/a<0 then s2[2]:='+';
write('(');
if a div j<>1 then write(a div j);
write(s1,abs(a div i div j*(x1 div t(abs(x1),abs(2*a)))),')(');
if j<>1 then write(j);
write(s2,abs(x2 div t(abs(x2),abs(2*a))),')');
writeln;
end else writeln('No');
end;
end;
end.
s1,s2:string;
function t(a,b:longint):longint;
var j:longint;
begin
repeat
j:=a;
a:=b;
a:=a mod j;
b:=j;
until a=0;
t:=j;
end;
begin
while not(eof)do begin
readln(a,b,c);
s1:='x-';s2:='x-';
if (sqr(b)-4*a*c<0)or(sqrt(sqr(b)-4*a*c)
<>trunc(sqrt(sqr(b)-4*a*c)))then begin
writeln('No');
readln;
halt;
end else begin
x1:=trunc(-b+sqrt(sqr(b)-4*a*c));
x2:=trunc(-b-sqrt(sqr(b)-4*a*c));
i:=abs(2*a) div t(abs(x1),abs(2*a));
j:=abs(2*a) div t(abs(x2),abs(2*a));
if (a/i/j=trunc(a/i/j))and(a/j=trunc(a/j))and(a/i=trunc(a/i))then begin
if a div j<0 then n:=-1 else n:=1;
if a div i div j*(x1 div t(abs(x1),abs(2*a)))<0 then m:=-1 else m:=1;
if n*m=-1 then s1[2]:='+' else s1[2]:='-';
if x2/2/a<0 then s2[2]:='+';
write('(');
if a div j<>1 then write(a div j);
write(s1,abs(a div i div j*(x1 div t(abs(x1),abs(2*a)))),')(');
if j<>1 then write(j);
write(s2,abs(x2 div t(abs(x2),abs(2*a))),')');
writeln;
end else writeln('No');
end;
end;
end.