Cod sursa(job #1129641)

Utilizator PatrikStepan Patrik Patrik Data 28 februarie 2014 00:36:12
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
    #include<cstdio>
    using namespace std;
    int A , N  ,x , y;

    void euclid(int a , int b , int &x , int&y);

    int main()
    {
        freopen("inversmodular.in" , "r" , stdin );
        scanf("%d%d" , &A , &N );
        euclid(N,A,x,y);
        while(y < 0)y+=N;
        freopen("inversmodular.out" , "w" , stdout );
        printf("%d" , y);
        return 0;
    }

    void euclid(int a , int b , int &x , int &y)
    {
        if(b == 0)
        {
            x = 1 , y = 0;
        }
        else{
            int x0,y0;
            euclid(b,a%b,x0,y0);
            y = x0-a/b*y0;
            x = y0;
        }
    }