Cod sursa(job #666973)

Utilizator valentina506Moraru Valentina valentina506 Data 22 ianuarie 2012 14:57:36
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
using namespace std;
unsigned long long a,n,x,y;

inline void euclid(unsigned long long a, unsigned long long b, unsigned long long &x,unsigned long long &y)
{
	if(b==0)
	{
		x=1;
		y=0;
	}
	else
	{	unsigned long long aux;
	    euclid(b,a%b,x,y);
		aux=x;
		x=y;
		y=aux-(a/b)*y;
	}
}
	
int main()
{
	freopen("inversmodular.in","r",stdin);
	freopen("inversmodular.out","w",stdout);
	scanf("%lld %lld",&a,&n);
	euclid(a,n,x,y);
	while(x<0)
		x=n+x%n;
	printf("%lld",x);
	return 0;
}