Cod sursa(job #624027)

Utilizator gramatovici_paulGramatovici Paul gramatovici_paul Data 21 octombrie 2011 15:20:55
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

using namespace std;

inline int modn(int x,int n)
{
    int a=x%n;
    if(a<0)
        return n+a;
    else
        return a;
}




void euclidext(int a, int b, int &x, int &y)
{
    if (b==0)
    {
        x=1;
        y=0;
        return;
    }
    int x1,y1,q=a/b;
    euclidext(b,a%b,x1,y1);
    x=y1;
    y=x1-y1*q;
}



int main()
{
    int a,n,x,y;
    freopen("inversmodular.in","r",stdin);
    freopen("inversmodular.out","w",stdout);
    scanf("%d%d",&a,&n);
    euclidext(a,n,x,y);
    printf("%d",modn(x,n));
    return 0;
}