Cod sursa(job #381026)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 8 ianuarie 2010 16:38:16
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>
#include <math.h>

long a, b, prod, i;

int main() {
	freopen("inversmodular.in", "r", stdin);
	freopen("inversmodular.out", "w", stdout);
	scanf("%ld %ld", &a, &b);
	prod = 1;
	for (i = 0; (1 << i) <= (b - 2); ++i) {
		if (((1 << i) & (b - 2)) > 0) {
			prod = prod * a;	
		}
		a = a * a;
	}
	printf("%ld\n", prod % b);
	return 0;
}