Cod sursa(job #1477414)
Utilizator | Data | 26 august 2015 10:51:14 | |
---|---|---|---|
Problema | Invers modular | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <cstdio>
#define ll long long
using namespace std;
ll A, B, C, D, X, Y;
void GCD(ll A, ll B, ll &X, ll &Y, ll &D){
if(B == 0){
X = 1;
Y = 0;
D = A;
} else {
ll X0, Y0;
GCD(B, A % B, X0, Y0, D);
X = Y0;
Y = X0 - (A / B) * Y0;
} return;
}
int main(){
freopen("inversmodular.in" ,"r", stdin );
freopen("inversmodular.out","w", stdout);
scanf("%lld %lld", &A, &B);
GCD(A, B, X, Y, D);
printf("%lld\n", X);
fclose(stdin );
fclose(stdout);
return 0;
}