Cod sursa(job #397665)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 17 februarie 2010 12:16:05
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<cstdio>
long long A,N;
void eucl(long long a,long long b,long long &x,long long &y,long long &d)
{
    if(b==0)
    {
        x=1;
        y=0;
        d=a;
        return ;
    }
    long long x1,y1;
    eucl(b,a%b,x1,y1,d);
    x=y1;
    y=x1-(a/b)*y1;
}
int main()
{
    freopen("inversmodular.in","r",stdin);
    freopen("inversmodular.out","w",stdout);
    scanf("%lld%lld",&A,&N);
    long long x,y,d;
    eucl(A,N,x,y,d);
    if(x>0)
        printf("%lld",x%N);
    else printf("%lld",N+x%N);
    return 0;
}