Cod sursa(job #681787)

Utilizator d.andreiDiaconeasa Andrei d.andrei Data 17 februarie 2012 19:49:48
Problema Invers modular Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <cstdio>

#define file_in "inversmodular.in"
#define file_out "inversmodular.out"

int A,N;

int put(int A, int B, int mod){
	
	if (B==0)
		return 1;
	if (B%2==0){
		int X=put(A,B/2,mod);
		return ((X%mod)*(X%mod))%mod;
	}
	else{
		int X=put(A,B/2,mod);
		return ((((X%mod)*(X%mod))%mod)*(A%mod))%mod;
	}
}

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &A, &N);
	
	printf("%d\n", put(A,N-2,N));
	
	return 0;
}