Cod sursa(job #645237)

Utilizator Robert29FMI Tilica Robert Robert29 Data 8 decembrie 2011 21:17:30
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#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;
}