Cod sursa(job #268489)

Utilizator AndreyPAndrei Poenaru AndreyP Data 1 martie 2009 12:32:02
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<stdio.h>
int a,n;
void euler(long long &x,long long &y,int a,int b)
{
	if(!b)
	{
		x=1;
		y=0;
		return;
	}
	euler(x,y,b,a%b);
	long long aux=x;
	x=y;
	y=aux-a/b*y;
}
int main()
{
	freopen("inversmodular.in","r",stdin);
	freopen("inversmodular.out","w",stdout);
	scanf("%d%d",&a,&n);
	long long rez,aux;
	euler(rez,aux,a,n);
	if(rez<=0)
		rez=n+rez%n;
	printf("%lld\n",rez);
	return 0;
}