Cod sursa(job #611810)

Utilizator raduspowertinca radu raduspower Data 3 septembrie 2011 15:57:44
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <fstream>
using namespace std;

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

void euclid(int a,int b,int& x,int& y)
{
	if (!b)
	{
		x=1;
		y=0;
		return;
	}
	int x1,y1;
	euclid(b,a%b,x1,y1);
	x=y1;
	y=x1-a/b*y1;
}

int inv(int a,int n)
{
	int x,y;
	euclid(a,n,x,y);
	x%=n;
	if (x<0)
		x+=n;
	return x;
}

int main()
{
	int a,n;
	in>>a>>n;
	out<<inv(a,n)<<"\n";
	return 0;
}