Nu aveti permisiuni pentru a descarca fisierul grader_test20.in
Cod sursa(job #595623)
| Utilizator | Data | 13 iunie 2011 13:43:23 | |
|---|---|---|---|
| Problema | Invers modular | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include<stdio.h>
#define i64 long long
FILE*f=fopen("inversmodular.in","r");
FILE*g=fopen("inversmodular.out","w");
int A,N;
void gcd ( i64 &x, i64 &y , int A, int B ){
if ( !B ){
x = 1; y = 0;
return ;
}
i64 x0,y0;
gcd ( x0 , y0 , B , A % B );
x = y0;
y = x0 - (A / B) * y0;
}
int main () {
fscanf(f,"%d %d",&A,&N);
i64 inv = 0,ins;
gcd(inv,ins,A,N);
if ( inv <= 0 ){
inv = N + (inv % N);
}
fprintf(g,"%lld\n",inv);
fclose(f);
fclose(g);
return 0;
}
