Pagini recente » Cod sursa (job #1798019) | Cod sursa (job #1004730) | Cod sursa (job #1606910) | Cod sursa (job #1493321) | Cod sursa (job #2169939)
#include <bits/stdc++.h>
#define INFILE "inversmodular.in"
#define OUTFILE "inversmodular.out"
using namespace std;
ifstream in(INFILE);
ofstream out(OUTFILE);
void euclid3(long long a,long long b,long long&d,long long&x,long long&y){
if(b==0){
d=a;
x=1;
y=0;
}
else{
long long x0,y0;
euclid3(b,a%b,d,x0,y0);
x=y0;
y=x0-(a/b)*y0;
}
}
int main(){
long long N,A;
in>>A>>N;
long long x,y;
long long d;
euclid3(A,N,d,x,y);
cout<<x<<" "<<y<<"\n";
long long inv=x;
while(inv<0){
inv=N+inv%N;//de ce?
}
out<<inv;
return 0;
}