Cod sursa(job #429154)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 29 martie 2010 21:14:12
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<stdio.h>
#define ll long long
ll A,N,inv,aux;

void euclid ( ll a, ll b, ll &x, ll &y)
{
	ll x0,y0;
	
	if(!b) { x=1; y=0; return ;}
	
    euclid(b,a%b,x0,y0);
	
	x=y0;
	y=x0-(a/b)*y0;
	
}

int main()
{
	freopen("inversmodular.in","r",stdin);
	freopen("inversmodular.out","w",stdout);
	
	scanf("%lld %lld",&A,&N);
	
	euclid(A,N,inv,aux);
	
	if(inv>0) inv%=N;
	else if(inv<0) inv=N+inv%N;
	
	printf("%lld",inv);
	
	return 0;
}