wuzw 2011-11-02 02:52:00
点我顶贴
收藏
删除
VAR a0,b0,b1,a1,n,k,i,j,a,b:integer;
procedure main(x,y:integer;var t:integer);
begin
while x mod y<>0 do
main(y,x mod y,t);
t:=y;
end;
procedure fj(x:integer;var y:integer);
begin
y:=0;
i:=1;
repeat
if x mod i=0 then
begin inc(y);x:=x div i;
while x mod i<>0 do
begin
inc(y);x:=x div i;
end;
end;
inc(i)
until i=sqrt(x);
end;
begin
readln(a0,a1,b0,b1);
a:=a0 div a1;b:=b1 div b0;
main(a,b,k);
if k<>1then
begin
writeln('0');halt;
end;
main(a,b0,k);
b0:=b0 div k;
main(a1,b,k);
main(b0,k,i);
k:=k div i;
fj(b0,i);
fj(k,j);
writeln((1+i+j)*(i+j)div 2);
readln
end.