Pagini recente » Cod sursa (job #3244028) | Cod sursa (job #353745) | Cod sursa (job #2165057) | Cod sursa (job #1493128) | Cod sursa (job #1246216)
#include <stdio.h>
void euclid(long long a, long long b, long long *x, long long *y){
long long x0, y0;
if(b==0){
*x=1;
*y=0;
return ;
}
euclid(b, a%b, &x0, &y0);
*x=y0;
*y=x0-((a/b)*y0);
}
int main(){
long long x, y, a, n;
FILE *fin, *fout;
fin=fopen("inversmodular.in", "r");
fout=fopen("inversmodular.out", "w");
fscanf(fin, "%lld%lld", &a, &n);
euclid(a, n, &x, &y);
if(x<0){
x=x+(x%n);
}
fprintf(fout, "%lld\n", x);
fclose(fin);
fclose(fout);
return 0;
}