Cod sursa(job #396395)

Utilizator ilincaSorescu Ilinca ilinca Data 15 februarie 2010 08:44:53
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>

int a, n;


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

int main ()
{
	freopen ("inversmodular.in", "r", stdin);
	freopen ("inversmodular.out", "w", stdout);
	scanf ("%d%d", &a, &n);
	int d, x, y;
	euclid (a, n, d, x, y);
	x=x%n;
       	while (x < 0)
		x += n;
	printf ("%d\n", x);	
	return 0;
}