Pagini recente » Cod sursa (job #2515409) | Cod sursa (job #3004695) | Cod sursa (job #576707) | Cod sursa (job #3185467) | Cod sursa (job #645237)
Cod sursa(job #645237)
#include<stdio.h>
FILE*f=fopen("inversmodular.in","r");
FILE*g=fopen("inversmodular.out","w");
int a,n;
long long X,Y;
void euclid(int a,int b,long long &x,long long &y){
if(!b){
x=1;
y=0;
return ;
}else{
long long x0,y0;
euclid(b,a%b,x0,y0);
x=y0;
y=x0-(a/b)*y0;
}
}
int main(){
fscanf(f,"%d%d",&a,&n);
euclid(a,n,X,Y);
if(X<=0)
X=X+X%n;
fprintf(g,"%lld",X);
fclose(g);
fclose(f);
return 0;
}