Cod sursa(job #634429)

Utilizator ELHoriaHoria Cretescu ELHoria Data 16 noiembrie 2011 12:10:19
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>
#define ll long long

using namespace std;

ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");

void gcd(int a,int b,ll &x,ll &y)
{
	if(!b) 
		x = 1 , y = 0;
	else
	{
		gcd(b,a%b,x,y);
		ll aux = x;
		x = y;
		y = aux - y*(a/b);
	}
}

int main()
{
	int N , A;
	fin>>A>>N;
	ll inv , ins;
	gcd(A,N,inv,ins);
	if(inv<=0)
		inv = N + inv%N;
	fout<<inv<<'\n';
	return 0;
}