fork download
  1. function iDivMod(const X: DWORD; const Y: DWord; var Z: DWord): DWORD;
  2. var
  3. a, b, k : DWord;
  4. begin
  5.  
  6. a := 0;
  7. b := x+1;
  8.  
  9. while b-a > 1 do begin
  10. k := (a+b) shr 1;
  11. if k*y > x then
  12. b := k
  13. else
  14. a := k
  15. end;
  16.  
  17. iDivMod := a;
  18. z := x-a*y
  19. // Result <--- целая часть результата деления X на Y
  20. // Z <--- остаток от деления X на Y
  21. end;
  22.  
  23. var
  24. x, y, z, i : DWord;
  25. begin
  26. for i := 1 to 10000 do begin
  27. X := Random(10000)+1;
  28. Y := Random(x)+1;
  29. if (iDivMod(x, y, z) <> x div y) or(z <> x mod y) then
  30. WriteLn(x, ' ', y)
  31.  
  32. end;
  33. end.
Success #stdin #stdout 0s 232KB
stdin
10000 3
stdout
Standard output is empty