Cod sursa(job #1892638)

Utilizator luca_robertaLuca Roberta luca_roberta Data 25 februarie 2017 10:26:25
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>

using namespace std;

void euclidex(long long int a,long long int b,long long int &k,long long int &l,long long int &d)
{
    if (b==0)
    {
        l=1;
        k=0;
        d=a;
        return;
    }
    long long int k1,l1,d1;
    euclidex(b,a%b,k1,l1,d1);
    l=k1;
    k=l1-(a/b)*k1;
    d=d1;
}
int main()
{
    freopen("inversmodular.in","r",stdin);
    freopen("inversmodular.out","w",stdout);

    long long int a,b,d,l,k;
    scanf("%lld %lld \n",&a, &b);
    euclidex(a,b,l,k,d);
    if(k<0)
        while(k<0)
            k=k+b;
    printf("%lld",k);
    return 0;
}