Cod sursa(job #330592)

Utilizator bogfunFMI Chicos Bogdan bogfun Data 10 iulie 2009 17:00:22
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<fstream>

using namespace std;

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

void euclid(int a, int b, int &x, int &y, int &d)
{
	if(b==0)
	{
		x=1;
		y=0;
		d=a;
		return;
	}
	int x2,y2;
	euclid(b,a%b,x2,y2,d);
	x=y2;
	y=x2-a/b*y2;
}

int main()
{
	int a,n,x,y,d;
	in>>a>>n;
	euclid(a,n,x,y,d);
	if(x%n<0) 
		x = x%n + n;
	else 
		x = x % n;
	out<<x;
}