Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- void xgcd(int *result, int a, int b)
- {
- long aa[2]={1,0}, bb[2]={0,1}, q;
- while(1) {
- q = a / b; a = a % b;
- aa[0] = aa[0] - q*aa[1]; bb[0] = bb[0] - q*bb[1];
- if (a == 0) {
- result[0] = b; result[1] = aa[1]; result[2] = bb[1];
- return;
- };
- q = b / a; b = b % a;
- aa[1] = aa[1] - q*aa[0]; bb[1] = bb[1] - q*bb[0];
- if (b == 0) {
- result[0] = a; result[1] = aa[0]; result[2] = bb[0];
- return;
- };
- };
- }
- int main()
- {
- int a, b, c[3];
- cin>>a>>b;
- if(b==0)
- cout<<"-1";
- else
- {xgcd(c,a,b);
- if(c[0]==1)
- {
- if(c[2]<0)
- c[2]+=a;
- cout<<c[2];
- }
- else
- cout<<"-1";}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement