Cod sursa(job #359632)

Utilizator proflaurianPanaete Adrian proflaurian Data 27 octombrie 2009 21:36:25
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<stdio.h>
#define tip long long
tip a,n,x,y;
void read(),solve(),invmod(tip a,tip b,tip &x,tip &y);
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("inversmodular.in","r",stdin);
	freopen("inversmodular.out","w",stdout);
	scanf("%lld%lld",&a,&n);
}
void solve()
{
	invmod(a,n,x,y);
	while(x<0)x+=n;
	printf("%lld\n",x);
}
void invmod(tip u,tip v,tip &x,tip &y)
{
	if(!v){x=1;y=0;return;}
	tip X,Y;invmod(v,u%v,X,Y);x=Y;y=X-(u/v)*Y;	
}