Cod sursa(job #228491)

Utilizator blasterzMircea Dima blasterz Data 7 decembrie 2008 13:20:20
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>


int A, N;

void euclid_extins(long long &x, long long &y, int a, int b)  
{  
     if (!b)  x=1, y=0;  
     else  
     {             
         euclid_extins(x, y, b, a % b);
         long long t=x;
         x=y;
         y=t - y*(a/b);
     }
}

int main()
{
	
    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);
	
    long long a=0,b;
    
    scanf("%d %d", &A, &N);
    euclid_extins(a, b, A, N);

    if (a <= 0) a = N + a%N;
       
    printf("%lld\n", a);
      
    return 0;
}