regergr

Untitled

Nov 6th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. program Project1;
  2.  
  3. var
  4. a, b, nod, x, y, c: integer;
  5.  
  6. function Gdc(a1, b1: integer): integer;
  7. var
  8. nod, r: integer;
  9. begin
  10. r := a1 mod b1;
  11. a1 := b1;
  12. b1 := r;
  13.  
  14.  
  15. if (b1 = 0) then
  16. begin
  17. nod := a1;
  18. end
  19. else
  20. begin
  21. nod := Gdc(a1, b1);
  22. end;
  23.  
  24. end;
  25.  
  26. procedure ExEuclid(a, b, x, y, c: integer);
  27. var
  28. x1, y1, x2, y2, q, r: integer;
  29. begin
  30. if (b = 0) then
  31. begin
  32.  
  33. x := 1;
  34. y := 0;
  35. end
  36. else
  37. begin
  38. x1 := 0;
  39. x2 := 1;
  40. y1 := 1;
  41. y2 := 0;
  42. while (b > 0) do
  43. begin
  44. q := a div b;
  45. r := a mod b;
  46. x := x2 - q * x1;
  47. y := y2 - q * y1;
  48. a := b;
  49. b := r;
  50. x2 := x1;
  51. x1 := x;
  52. y2 := y1;
  53. y1 := y;
  54.  
  55. end;
  56.  
  57. x := x2;
  58. y := y2;
  59. end;
  60. Write(x * c div nod, ' ', y * c div nod, ' ');
  61.  
  62. end;
  63.  
  64. begin
  65. Read(a, b, c);
  66.  
  67.  
  68. x := 0;
  69. y := 0;
  70. nod := Gdc(a, b);
  71. if (c mod nod = 0) then
  72. begin
  73. //if (a>b) then ExEuclid(a, b, x, y, c)
  74. //else ExEuclid(b, a, x, y, c);
  75. ExEuclid(a, b, x, y, c) ;
  76. writeln(-(b div nod), ' ', a div nod);
  77. readln;
  78. readln();
  79. end
  80. else
  81. begin
  82. write('incorrect');
  83. readln();
  84. readln;
  85. end;
  86.  
  87. end.
Advertisement
Add Comment
Please, Sign In to add comment