Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. void xgcd(int *result, int a, int b)
  7. {
  8. long aa[2]={1,0}, bb[2]={0,1}, q;
  9. while(1) {
  10. q = a / b; a = a % b;
  11. aa[0] = aa[0] - q*aa[1]; bb[0] = bb[0] - q*bb[1];
  12. if (a == 0) {
  13. result[0] = b; result[1] = aa[1]; result[2] = bb[1];
  14. return;
  15. };
  16. q = b / a; b = b % a;
  17. aa[1] = aa[1] - q*aa[0]; bb[1] = bb[1] - q*bb[0];
  18. if (b == 0) {
  19. result[0] = a; result[1] = aa[0]; result[2] = bb[0];
  20. return;
  21. };
  22. };
  23. }
  24.  
  25. int main()
  26. {
  27. int a, b, c[3];
  28. cin>>a>>b;
  29. if(b==0)
  30. cout<<"-1";
  31. else
  32. {xgcd(c,a,b);
  33. if(c[0]==1)
  34. {
  35. if(c[2]<0)
  36. c[2]+=a;
  37. cout<<c[2];
  38. }
  39. else
  40. cout<<"-1";}
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement