Cod sursa(job #1340507)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 11 februarie 2015 21:11:39
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>
using namespace std;

void euclid(int x, int * y, int n, int * m);

int main(){
	ifstream in("inversmodular.in");
	int x, y, n, m;
	in >> x >> n;
	euclid(x, &y, n, &m);
	ofstream out("inversmodular.out");
	out << y % n;
	return 0;
}

void euclid(int x, int * y, int n, int * m){
	if (x == 0){
		*y = 0;
		*m = 1;
	}
	else{
		int y0, m0;
		euclid(n % x, &y0, x, &m0);
		*m = y0;
		*y = m0 - (n - (n % x)) / x * y0;
	}
}