Cod sursa(job #645257)

Utilizator KoniacDocea Andrei Koniac Data 8 decembrie 2011 22:03:30
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<stdio.h>

FILE*f=fopen("inversmodular.in","r");
FILE*g=fopen("inversmodular.out","w");
int a,n;
long long xp,yp;

void euclid(int a,int b,long long &x,long long &y){
	if(b==0){
		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,xp,yp);
	while(xp<=0){
		xp=n+xp%n;
	}
	fprintf(g,"%lld",xp);
	fclose(f);
	fclose(g);
	return 0;
}