Cod sursa(job #983438)

Utilizator helios11radu mihai helios11 Data 11 august 2013 20:07:59
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
int A, N;

void read(){
	freopen("inversmodular.in", "r", stdin);
	scanf("%d", &A);
	scanf("%d", &N);
}

void print(int x){
	
	printf("%d", x);
}

void solve(){
	int q, r, t0, t1, t2;

	if(N < A)
		swap(N, A);
	
	q = N / A;
	r = N % A;
	t0 = 0;
	t1 = 1;
	t2 = t0 - q*t1;

	if(r == 1){
	//inseamna ca
		print(N-1);
	}
	else{
		while(r != 1){
			q = N / A;
			r = N % A;
			N = A;
			A = r;
			t2 = t0 - q * t1;
			t0 = t1;
			t1 = t2;
			//print(t2);
		}
		print(t2);
	}
}


int main(){
	freopen("inversmodular.out", "w", stdout);
	read();
	solve();
	return 0;
}