Cod sursa(job #1571099)
Utilizator | Belcineanu Alexandru Ioan rughibem | Data | 17 ianuarie 2016 10:00:00 |
---|---|---|---|
Problema | Invers modular | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include<stdio.h>
FILE *f=fopen("inversmodular.in","r"), *g=fopen("inversmodular.out","w");
int A, N, X, Y;
void cmmdc( int a, int n, int &x, int &y ){
int x0, y0;
if( n == 0 ){
x = 1;
y = 0;
return;
}
cmmdc( n, a%n, x0, y0 );
x = y0;
y = x0 - (a/n) * y0;
}
int main(){
fscanf(f,"%d %d\n",&A,&N);
cmmdc(A,N,X,Y);
while( X < 0 )
X += N;
fprintf(g,"%d\n",X);
return 0;
}