Cod sursa(job #718515)

Utilizator ioanabIoana Bica ioanab Data 20 martie 2012 21:02:06
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 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)
	{
		d=a;
		x=1;
		y=0;
		return;
	}
	int xx,yy,q=a/b;
	euclid(b,a%b,xx,yy,d);
	x=yy;
	y=xx-yy*q;
}

int main()
{
	int a,m,x,y,d;
	in>>a>>m;
	euclid(a,m,x,y,d);
	if(x>=0)
		out<<x;
	if(x<0)
	{
		while(x<0)
			x+=m;
		out<<x;
	}
	
	return 0;
}