Cod sursa(job #1979562)

Utilizator PhilipDumitruPhilip Dumitru PhilipDumitru Data 10 mai 2017 20:42:25
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

struct eulerEc
{
	long long int a;
	long long int b;
	long long int x;
	long long int y;
	long long int d;
};

eulerEc* euler(long long a, long long b)
{
	eulerEc* e;
	if (!b)
	{
		e = new eulerEc;
		e->a = a;
		e->b = b;
		e->x = 1;
		e->y = 0;
		e->d = a;

	} else {
		e = euler(b, a%b);
		e->a = a;
		e->b = b;
		long long aux = e->x;
		e->x = e->y;
		e->y = aux - (a/b)*e->y;
	}
	return e;
}

int main()
{
	long long int a;
	long long int n;
	fscanf(stdin, "%lld%lld", &a, &n);

	eulerEc * e = euler(a, n);
	fprintf(stdout, "%lld\n", e->x % n);
	delete e;
	return 0;
}