Cod sursa(job #705429)

Utilizator DSzprogDombi Szabolcs DSzprog Data 4 martie 2012 12:05:18
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstring>
#include <cstdio>
#include <cmath>

long long a, b;

long long megold(long long a, long long b) {
	long long ax = 1, bx = 0, cx, d, r;
	while (b) {
		d = a / b;
		r = a % b;

		cx = bx;
		bx = ax - d * bx;
		ax = cx;

		a = b;
		b = r;
	}
	return(ax);
}

int main() {
	FILE * in = fopen("inversmodular.in", "rt");
	FILE * out = fopen("inversmodular.out", "wt");

	fscanf(in, "%lld%lld", &a, &b);
	long long x = megold(a, b);
	if (x > 0) {
		fprintf(out, "%lld", x);
	} else {
		fprintf(out, "%lld", b + x % b);
	}
	fclose(in);
	fclose(out);
}