procedure eliminateDual(n,m:Cardinal);//n,mは$ffff以下である事
var x,y,n2,m2:Cardinal;
var i:Integer;
var bit,adr:Integer;
var tim:DWORD;
begin
write('ふるう数=',n,',',m);
tim:=GetTickCount;
n2:=2*n; m2:=2*m;
x :=n*n; y :=m*m;
while (x<y) do begin
  SetBit(x);
  x:=x+n2;
  end;
while (x>n2)and(y>m2) do begin
  for i:=1 to m do begin
  SetBit(x);
  x:=x+n2;
  end;
  for i:=1 to n do begin
  if y<m2 then break;
  SetBit(y);
  y:=y+m2;
  end;
 end;
writeln(' かかった時間=',GetTickCount-tim);
end;


ふるう数=17 かかった時間=3315
ふるう数=19 かかった時間=3155
ふるう数=17,19 かかった時間=3986